用字符串拼接可以修改数据,但是用MySql参数就不行了,没有报错,MySqlHelper.ExecuteNonQuery()返回值一直是0,高手快来帮忙啊//更新方法
public static bool editOrderState(int ordid, int ordState)
    {
        bool suc = false;
        string sql = "UPDATE orders set orders.orders_status = @orders_status where orders.orders_id = @orderid";
        MySQLParameter[] prams = {
                new MySQLParameter("@orders_status",DbType.Int32),
                new MySQLParameter("@orderid",DbType.Int32)
            };
        prams[0].Value = ordState;
        prams[1].Value = ordid;
        try
        {
            if (MySqlHelper.ExecuteNonQuery(sql, prams) > 0)
            //if (MySqlHelper.ExecuteNonQuery(CommandType.Text, sql, prams) > 0)
            {
                suc = true;
            }
        }
        catch
        {        }
        return suc;
    }
/// <summary>
    /// 访问数据库更新方法
    /// </summary>
    /// <param name="sqlstr">SQL</param>
    /// <param name="prams">参数</param>
    /// <returns>影响的行数</returns>
    public static int ExecuteNonQuery(string sqlstr, MySQLParameter[] prams)
    {
        int rows = 0;  
        using (MySQLConnection conn = new MySQLConnection(ConnectionString))
        {
            MySQLCommand comm = new MySQLCommand();
            comm.Connection = conn;
            try
            {
                if (prams != null)
                {
                    foreach (MySQLParameter parm in prams)
                    {
                        comm.Parameters.Add(parm);
                    }
                }
                
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                conn.Open();
                rows = comm.ExecuteNonQuery();
            }
            catch
            {            }
            finally
            {
                conn.Close();
            }
        }
        return rows;
    }

解决方案 »

  1.   

    string sql = "UPDATE orders set orders.orders_status = @orders_status where orders.orders_id = @orderid";
            MySQLParameter[] prams = {
                    new MySQLParameter("@orders_status",DbType.Int32),
                    new MySQLParameter("@orderid",DbType.Int32)
                };
    @改成?
      

  2.   

    MSSQL的参数化用 @
    MYSQL的参数化用 ?不一样的,呵呵
      

  3.   

    1,首先保证有数据,就是说
    你传递的orders_id 在表里有没有对应的纪录。
    2。orders_status  ,orders_id 俩个字段的 数据类型是不是int
      

  4.   

    果然是,谢了,平时都用MSSQL,忽然换个MYSQL,很多细节都不知道