根据参数value判断是否为null生成sqlTxt
public static string GenerateSqlTxtByParams(SqlParameter[] oldParameters, string tableName, string strPrimaryKey, out SqlParameter[] newParameters)
{
string strKeyParam = "@" + strPrimaryKey;
IQueryable<SqlParameter> lst = oldParameters.AsQueryable().Where(item => item.Value != null);
newParameters = lst.ToArray();
SqlParameter[] tempParams = lst.Where(item => item.ParameterName != strKeyParam).ToArray();
StringBuilder strSql = new StringBuilder();
strSql.Append("UPDATE ");
strSql.Append(tableName);
strSql.Append(" SET ");
foreach (SqlParameter pr in tempParams)
{
string temp = pr.ParameterName.Replace("@", "");
temp += "=" + pr.ParameterName + ",";
strSql.Append(temp);
}
string strNewSql = strSql.ToString().TrimEnd(',');
strNewSql += " WHERE " + strPrimaryKey + "=" + strKeyParam;
return strNewSql;
}

浙公网安备 33010602011771号