用字符串拼接可以修改数据,但是用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;
}
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;
}
MySQLParameter[] prams = {
new MySQLParameter("@orders_status",DbType.Int32),
new MySQLParameter("@orderid",DbType.Int32)
};
把@改成?
MYSQL的参数化用 ?不一样的,呵呵
你传递的orders_id 在表里有没有对应的纪录。
2。orders_status ,orders_id 俩个字段的 数据类型是不是int