您的位置:首页 > 数据库

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

2009-04-13 21:09 891 查看
数据库中的字段名不能写成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,还是正确的,因为我在使用上文的更新函数之前,使用的就是查询,居然查询没有问题,但更新不行!当然插入是肯定不行了……

无语!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐