用OleDbCommand增加新记录时出现的问题

本文介绍了一个因使用SQL关键字作为字段名导致的插入语句错误案例,并分享了解决方案,即通过给关键字字段名加上表名标识来避免语法冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写了这么一段程序:

 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('";

就能正常插入记录。汗……

结论:在数据库设计时,字段名尽量不要使用程序开发语言的关键字或保留字之类作为字段名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值