关于C#更新Access数据库时发现的一个没有任何技术含量的问题,给大家分享,希望能给大家帮助

数据库中的字段名不能写成VALUE。我的函数如下,功能是将一些存在名为AttributeValue的Dictionary中的值更新到数据库中,数据库名为Attribute_Setting,只有两列,一列是名为KEY,string类型,另一列名为Value,double类型。

 

        public void SaveAttribute(string DataSource, Dictionary<string, double> AttributeValue)
        {
            string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + DataSource;
            OleDbConnection conn = new OleDbConnection(strCon);
            conn.Open();
            string strCom = "";
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = conn;
            foreach (string key in AttributeValue.Keys)
            {
                strCom = "Update Attribute_Setting set Value = " + AttributeValue[key] + " where Key = '" + key + "'";
                myCommand.CommandText = strCom;
                myCommand.ExecuteNonQuery();
            }
            conn.Close();
        }

 

上面的程序一直报错,总是说Update语句有语法错误,可是一直查不出来,这么简单的更新语句根本就没什么可查的……最后无奈了,乱试一起,最后才发现数据库中字段名不能用Value,估计因为Value是数据库中Insert语句的关键字吧。把库中列名改了就好了。

这个问题真没有什么技术含量,发出来希望大家看了后不要犯类似的错误,走很多弯路,浪费很多时间吧。这个问题还变态在即使用Value做列名,在查询的时候,比如使用Select Value from Attribute_Setting,还是正确的,因为我在使用上文的更新函数之前,使用的就是查询,居然查询没有问题,但更新不行!当然插入是肯定不行了……

无语!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值