最近用做個小工具,採用access2007做數據庫,做好之後發現,更新數據總是不成功,但是也不報錯誤,鬱悶。。。。
後來在網上看到了一篇文章,讀完之後,恍然大悟。原來是忽略了一個小細節引起的。詳細如下。
我對acces數據庫的增刪查改操作都是通過OleDbParameter[] parameters = {}來指定參數的,這就是問題的所在,access數據庫要求OleDbParameter[] parameters = {}裏面的參數是順序是一定要按Update語句裏面變量的順序的,例如
StringBuilder strSql=new StringBuilder();
strSql.Append("update t_YongHu set ");
//strSql.Append("usrID=@usrID,");------------------------------------------注意這裏的順序①
strSql.Append("usrXingMing=@usrXingMing,");
strSql.Append("usrZhiWei=@usrZhiWei");
strSql.Append(" where usrID=@usrID ");
OleDbParameter[] parameters = { ;----------------------------------------這裏的順序要和①處一致
new OleDbParameter("@usrXingMing", OleDbType.VarChar,255),
new OleDbParameter("@usrZhiWei", OleDbType.VarChar,255),
new OleDbParameter("@usrID", OleDbType.Integer,4)};
parameters[2].Value = model.usrID;----------------------------------------這裏的順序也要和①處一致
parameters[0].Value = model.usrXingMing;
parameters[1].Value = model.usrZhiWei;
DbHelperOleDb.ExecuteSql(strSql.ToString(),parameters);
原文地址:http://blog.sina.com.cn/s/blog_489b85ed0100af24.html#comment