我們教程是用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);
}