我们教程是用sql录制的,可是今天一网友把我们的sql改成了access ,使用Update语句更新数据时,发现返回的影响行数总是0,没报错。琢磨好久,也一直在网上找解决办法。
后来才发现。原来是 传递的 参数的 顺序问题 sql语句中参数是什么顺序,那么参数数组中的元素也应该按照那个顺序传递!!!!!!!!!!!!!!!
/// <summary>
/// 更新一条数据
/// </summary>
public int UpdateSomeFiled()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update [Member] set ");
strSql.Append("[TrueName]=@TrueName ");
strSql.Append(" where ID=@ID");
OleDbParameter[] parameters = {
new OleDbParameter("@ID", OleDbType.Integer,4),
new OleDbParameter("@TrueName", OleDbType.VarChar,20)
};
parameters[0].Value = TrueName;
parameters[1].Value = ID;//此处把id放后面了 代码生成器生成的默认parameters[0].Value = ID
return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
}