本来一直都在用MSSQL的,可是公司接了个不大也不算小的网站,网站大部分是我的前任做的,(呵呵,我是公司新来的!)数据库也是用的ACCESS。
本人真的很不喜欢ACCESS,用的过程中老是会报些莫名其妙的错误。烦不胜烦。
今天下午使用Update语句更新数据时,发现返回的影响行数总是0,没报错。琢磨好久,也一直在网上找解决办法。
弄了一下午,才发现。原来只是传参数时的顺序问题。。。。。。汗哪。。。。。。
详细:看下面的代码,sql语句的参数是@KindName在前面,之后是@PicUrl,最后是@Id,
如果在parameters中把@KindName放最后,或第二,就会发现影响行数返回0。
真纳闷。。。。。。
MSSQL多好啊。。。。。
/// <summary>
/// 更新一条数据
/// </summary>
public int Update()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update tb_Brand set ");
strSql.Append("KindName=@KindName,");
strSql.Append("PicUrl=@PicUrl,");
strSql.Append(" where Id=@Ids ");
OleDbParameter[] parameters = {
new OleDbParameter("@KindName", OleDbType.VarWChar),
new OleDbParameter("@PicUrl", OleDbType.VarWChar),
new OleDbParameter("@Id", OleDbType.Integer)};
parameters[0].Value = KindName;
parameters[1].Value = PicUrl;
parameters[2].Value = Id;
return DbHelperOleDb.ExecuteSql(strSql.ToString(), parameters);
}