insert into T_ADVICEDEALMSG (DEALID,DEALTIME,DEALTYPE,DEPARTMENT,LEADER,DEALDESC,REPLYMAN,REPLYTIME,ENTERUSERID,ENTERDATE,MODIFYDATE)
values ({0},{1},'{2}','{3}','{4}','{5}','{6}',{7},{8},{9},{10})
简单的看了一下, 11个字段,11个数值。 这个SQL 里面的 引号是没有问题。
我估计问题的原因在于, 外面传递进来的参数里面,有引号。
例如
lstDealType.SelectedItem.Text,
txtDealDeptart.Text,
txtDealLeader.Text,
txtDealDesc.Text,
txtReplyMan.Text,
txtEventTime.Text
这些数据里面,只要有一个数据里面, 有一个 引号, 就把你拼出来的 SQL语句给破坏了。
最简单的办法,你将你得到的
strCmdInsert 这个变量,输出出来看下,看下你拼出来的语句是什么样子,拿去数据库上执行下,一下就能找到问题
提示,一个或多个参数没有被指定.
你看看哪个值是不是漏掉了!!
或者类型搞跟数据库里的不匹配..
仔细检查检查..
SELECT *
into Persons
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:DB.mdb";User ID=Admin;Password=')...表名
不同数据库类型要用opendatasource或OPENROWSET来进行连接,而且就算相同数据库类型,都不能用你的写法
如果同是sql,select * into 另一数据库..新表 from 原表
如果两数据库不在同一服务器上,还是要用opendatasource或OPENROWSET来进行连接
我执行了一个你的语句结果为:
insert into T_ADVICEDEALMSG (DEALID,DEALTIME,DEALTYPE,DEPARTMENT,LEADER,DEALDESC,REPLYMAN,REPLYTIME,ENTERUSERID,ENTERDATE,MODIFYDATE) values ('',2011-5-3 15:23:59,'','','','','',2011-5-3 15:23:59,,,2011-5-3 15:23:59)
日期上没有单引号所以C#里
System.DateTime.Now 前后要加单引号。修改成
string strCmdInsert = string.Format("insert into T_ADVICEDEALMSG (DEALID,DEALTIME,DEALTYPE,DEPARTMENT,LEADER,DEALDESC,REPLYMAN,REPLYTIME,ENTERUSERID,ENTERDATE,MODIFYDATE) values ({0},{1},'{2}','{3}','{4}','{5}','{6}',{7},{8},{9},{10})",strSelect, "'"+System.DateTime.Now + "'", lstDealType.SelectedItem.Text, txtDealDeptart.Text, txtDealLeader.Text, txtDealDesc.Text, txtReplyMan.Text, "'"+System.DateTime.Now + "'", strEnterUserID, txtEventTime.Text, "'"+System.DateTime.Now + "'");
结果应为
insert into T_ADVICEDEALMSG (DEALID,DEALTIME,DEALTYPE,DEPARTMENT,LEADER,DEALDESC,REPLYMAN,REPLYTIME,ENTERUSERID,ENTERDATE,MODIFYDATE) values ('','2011-5-3 15:23:59','','','','','','2011-5-3 15:23:59',,,'2011-5-3 15:23:59')
你试试看吧!
values ({0},{1},'{2}','{3}','{4}','{5}','{6}',{7},{8},{9},{10})"应该每个值都要符号''吧?
改成values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')试试看