日期:2014-05-19  浏览次数:20977 次

新手:addcomm.ExecuteNonQuery()出现异常?怎么回事??添加新记录时
//添加记录方法一
/*DataRow   newrow=DSmy.Tables[ "my "].NewRow();
newrow[ "Item "]=txtItem.Text;
newrow[ "pirce "]=txtprice.Text;
newrow[ "cou "]=txtcou.Text;
newrow[ "sum "]=Convert.ToDouble(txtcou.Text)*Convert.ToDouble(txtprice.Text);
newrow[ "adddate "]=dtp.Text;
newrow[ "remark "]=Rtremark.Text;
DSmy.Tables[ "my "].Rows.Add(newrow);
oleDbDA.Update(DSmy, "my ");*/
//添加记录方法二
Double   dblsum=Convert.ToDouble(txtcou.Text)*Convert.ToDouble(txtprice.Text);;
string   addsql= "insert   into   my   (adddate,item,pirce,cou,sum,remark)   values( ' "+dtp.Text+ " ', ' "+txtItem.Text+ " ', "+txtprice.Text+ ", "+txtcou.Text+ ", "+dblsum+ ", ' "+Rtremark.Text+ " ') ";
OleDbCommand   addcomm=new   OleDbCommand(addsql,oleDbCon);
Rtremark.Text=addsql;
oleDbCon.Open();
addcomm.ExecuteNonQuery();//这里出现异常
MessageBox.Show( "添加记录成功 ");
oleDbCon.Close();
=================================
SQL语句是insert   into   my   (adddate,item,pirce,cou,sum,remark)   values( '2007年3月23日 ', '234 ',23,1,23, '23 '),我放到ACCESS中可以正常运行,并添加了新记录

上面第一种方法添加记录是成功的

------解决方案--------------------
把oleDbCon.Open();这行放到
OleDbCommand addcomm=new OleDbCommand(addsql,oleDbCon);
这行的前面试下


------解决方案--------------------
何种异常?
描述一下!
------解决方案--------------------
哦,不好意思,没看仔细,报的什么异常,另外断点跟踪一下看看
------解决方案--------------------
应该是addsql的问题,注意顺序和格式,这样试下


string addsql= "insert into my (item,pirce,cou,sum,adddate,remark) values( ' "+txtItem.Text+ " ', ' "+txtprice.Text+ " ', ' "+txtcou.Text+ " ', ' "+dblsum+ " ', ' "+dtp.Text+ " ', ' "+Rtremark.Text+ " ') ";
------解决方案--------------------
try..

string addsql= "insert into [my] ([adddate],[item],[pirce],[cou],[sum],[remark]) values... "

即将表名和字段名都加上 "[] ",避免与Acess中产关键字冲突...
------解决方案--------------------
按楼上的试下,如果还不行,加try{}catch{}看下具体是什么异常