关于Access数据库执行Update语句后,不报错,但影响行数总是返回0的问题...... up

本来一直都在用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);
    }

原文地址:https://www.cnblogs.com/uphenson/p/1708547.html