首页 > 代码库 > 记录Access数据库更新操作大坑一个
记录Access数据库更新操作大坑一个
对于更新Access数据库的操作,必须保持参数数组与sql语句中参数顺序一致,如下:
1 public bool Update(MyModel model) 2 { 3 StringBuilder strSql = new StringBuilder(); 4 strSql.Append("update table1 set "); 5 strSql.Append(" column1 = @column1 , "); 6 strSql.Append(" column2 = @column2, "); 7 strSql.Append(" where ID=@ID "); 8 9 OleDbParameter[] parameters =10 {11 // 必须要这个顺序 ヾ(。 ̄□ ̄)?゜゜゜12 new OleDbParameter("@column1", OleDbType.Integer, 4),13 new OleDbParameter("@column2", OleDbType.Integer, 4),14 new OleDbParameter("@ID", OleDbType.Integer, 4)15 };16 17 parameters[0].Value =http://www.mamicode.com/ model.column1;18 parameters[1].Value =http://www.mamicode.com/ model.column1;19 parameters[2].Value =http://www.mamicode.com/ model.ID;20 21 int rows = DbHelperOleDb.ExecuteSql(strSql.ToString(), parameters);22 if (rows > 0)23 {24 return true;25 }26 else27 {28 return false;29 }30 }
如果改成下面这样,顺序不一致了,就妥妥的更新失败,还不报任何异常。。。。
1 public bool Update(MyModel model) 2 { 3 StringBuilder strSql = new StringBuilder(); 4 strSql.Append("update table1 set "); 5 strSql.Append(" column1 = @column1 , "); 6 strSql.Append(" column2 = @column2, "); 7 strSql.Append(" where ID=@ID "); 8 9 OleDbParameter[] parameters =10 {11 // 顺序与sql语句不一致了 ヾ(。 ̄□ ̄)?゜゜゜12 new OleDbParameter("@ID", OleDbType.Integer, 4),13 new OleDbParameter("@column1", OleDbType.Integer, 4),14 new OleDbParameter("@column2", OleDbType.Integer, 4)15 };16 17 parameters[0].Value =http://www.mamicode.com/ model.ID;18 parameters[1].Value =http://www.mamicode.com/ model.column1;19 parameters[2].Value =http://www.mamicode.com/ model.column1;20 21 int rows = DbHelperOleDb.ExecuteSql(strSql.ToString(), parameters);22 if (rows > 0)23 {24 return true;25 }26 else27 {28 return false;29 }30 }
记录Access数据库更新操作大坑一个
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。