根据参数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;
        }
posted @ 2012-10-02 16:03  zxsr20  阅读(36)  评论(0)    收藏  举报