小弟有查询数据库函数。有两个参数,参数1为表中的字段名,参数2为该字段值。如下代码,现已对value进行了参数化。现在想对columnName也进行参数化,该如何写?谢谢
public DataTable GetListByColumn(string columnName, Object value)
{
string sequel = "select * from [product_deliver] " + " Where [" + columnName + "] =@Value ";
SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@Value", value) };
DataTable dt = SqlHelper.ExecuteDataSet(Configuration.ConnectionString, CommandType.Text, sequel, paras).Tables[0]; return dt;
}
public DataTable GetListByColumn(string columnName, Object value)
{
string sequel = "select * from [product_deliver] " + " Where [" + columnName + "] =@Value ";
SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@Value", value) };
DataTable dt = SqlHelper.ExecuteDataSet(Configuration.ConnectionString, CommandType.Text, sequel, paras).Tables[0]; return dt;
}
参见类似代码:
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * ");
strSql.Append(" FROM Customer ");
strSql.Append(" WHERE "+this.LinkSql(cusList));
SqlParameter[] parameters ={
new SqlParameter("@QueryStr",SqlDbType.VarChar,4000), //改为3000
new SqlParameter("@PageSize",SqlDbType.Int),
new SqlParameter("@PageCurrent",SqlDbType.Int),
new SqlParameter("@FdShow",SqlDbType.VarChar,4000), //改为200
new SqlParameter("@FdOrder",SqlDbType.VarChar,1000), //改为200
};
parameters[0].Value = strSql.ToString().Trim();
parameters[1].Value = 30;
parameters[2].Value = PageCurrent;
parameters[3].Value = "";
parameters[4].Value = " cCode desc "; DataSet ds = DbHelperSQL.RunProcedure("PageQuery", parameters, "CustomerList");
return ds;
两参数一个是string 一个是int,如果照你说的那样的话会报错:(大概是不能将int转为varchar) 类似的