回 帖 发 新 帖 刷新版面

主题:[讨论]在c sharp程序中如何在调用的access表格中插入一行

例如:
...调用了一个access文件欲对其中一张表(TableName)内插入一行三列元素分别为item1\2\3,设定第一列item0为自动添加序列号项,如下
...
string insertString ="INSERT INTO TableName(item1,item2,item3)"+"VALUES ('FileLocation', 10,100" +")";

System.Data.OleDb.OleDbCommand oledbCommand=new System.Data.OleDb.OleDbCommand(insertString,m_oledbConnection);
oledbCommand.CommandType= System.Data.CommandType.Text;
System.Data.OleDb.OleDbDataReader rowreader=oledbCommand.ExecuteReader();
rowreader.Close();
...

调试发现程序在倒数第二行出现错误:An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll

哪位高手再帮忙解决下,谢谢
提示:我直接在sql里执行"INSERT INTO TableName(item1,item2,item3)"+"VALUES ('FileLocation', 10,100" +")";可以对sql里的表格进行行的插入,没有问题

如有不明之处请跟贴,我会详细说明,谢谢!

回复列表 (共4个回复)

沙发

非查询语句要用ExecuteNonQuery
ExecuteReader用于查询语句

板凳

根据楼上的提示我进行了修改,但问题依然存在,提示错误相同
5555

3 楼

问题解决。
是因为sql语句格式不对造成的,奇怪编译时没有提示错误。。。

sql插入行格式:
string strSQLSelect="Insert TableName( item1, item2, item3,... )"+" values ( "+"'"+item1+"'"+","+"'"+item2+"'"+","+"'"+item3+"'..."+" )";

anyway, thanks all

4 楼

无知往往很幼稚呵呵
这也不是固定格式取决于item的类型,如果为数字则不需加单引号...

我来回复

您尚未登录,请登录后再回复。点此登录或注册