今天写了这么一段程序:
string strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+Server.MapPath("App_Data//class.mdb");
OleDbConnection myConn = new OleDbConnection(strConn);
myConn.Open();
string strInsert = "insert into user([name],[name2],[password],[classid],[teacherid]) VALUES('";
strInsert += TextBox1.Text + "','";
strInsert += TextBox2.Text + "', '";
strInsert += TextBox3.Text + "',";
strInsert += DropDownList1.SelectedValue + ",";
strInsert += DropDownList2.SelectedValue + ")";
OleDbCommand inst = new OleDbCommand(strInsert, myConn);
inst.ExecuteNonQuery();
myConn.Close();
但是调试运行时总是提示insert into语句出错,搞得我非常郁闷,但用ACCESS的SQL视图调试时,能正常插入记录。
经过千辛万苦的调试,终于搞明白了,原来是插入记录时数据表字段用了关键字user,经常更改把
string strInsert = "insert into user([name],[name2],[password],[classid],[teacherid]) VALUES('";
这条语句改成
string strInsert = "insert into [user]([name],[name2],[password],[classid],[teacherid]) VALUES('";
就能正常插入记录。汗……
结论:在数据库设计时,字段名尽量不要使用程序开发语言的关键字或保留字之类作为字段名。
本文介绍了一个因使用SQL关键字作为字段名导致的插入语句错误案例,并分享了解决方案,即通过给关键字字段名加上表名标识来避免语法冲突。
249

被折叠的 条评论
为什么被折叠?



