今天写了这么一段程序:
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('";
就能正常插入记录。汗……
结论:在数据库设计时,字段名尽量不要使用程序开发语言的关键字或保留字之类作为字段名。