sql中SqlParameter的用法
比如像这样的:
public DataTable CheckSMRepeat(string strSM)
{
string sql = "SELECT * from TableA where SM='"+strSM+"'";
DataTable dt = SqlHelperService.ExecuteQuery(sql);
return dt;
}
public static DataTable ExecuteQuery(string sql)
{
GetConn();
SqlDataAdapter sda = new SqlDataAdapter(sql, _Conn);//数据库适配器
DataSet ds = new DataSet();//内存数据库
sda.Fill(ds);//将查询结果填充到内存数据库
return ds.Tables[0];
}
我想用SqlParameter给查询语句赋值,应该要如何修改呢 SqlParameter sql
[解决办法]
http://www.cnblogs.com/sjrhero/articles/1865220.html
[解决办法]
refer,这是oracle的,你得修改一下:(oracle参数的写法)或者@(sqlserver参数的写法).
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string USERGROUPCODE, string USERGROUPNAME, string GROUPCOMMENT, string USERGROUPPARENT)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) from T_SYSGROUP");
strSql.Append(" where USERGROUPCODE=:USERGROUPCODE and USERGROUPNAME=:USERGROUPNAME and GROUPCOMMENT=:GROUPCOMMENT and USERGROUPPARENT=:USERGROUPPARENT ");
OracleParameter[] parameters = {
new OracleParameter(":USERGROUPCODE", OracleType.VarChar,20),
new OracleParameter(":USERGROUPNAME", OracleType.VarChar,50),
new OracleParameter(":GROUPCOMMENT", OracleType.VarChar,500),
new OracleParameter(":USERGROUPPARENT", OracleType.VarChar,20)};
parameters[0].Value = USERGROUPCODE;
parameters[1].Value = USERGROUPNAME;
parameters[2].Value = GROUPCOMMENT;
parameters[3].Value = USERGROUPPARENT;
return OracleHelper.Exists(strSql.ToString(), parameters);
}
[解决办法]
你一点基础都没有,不应该直接拿什么SqlHelp来用,那是自欺欺人的行为。
参考:http://msdn.microsoft.com/ZH-CN/library/vstudio/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
把最基本的参数化查询过程搞清楚,学会使用SqlCommand的各种方法,学会处理各种Sql异常,SqlHelp只是提高编码效率的存在,而不是神器,什么都不懂的情况下去用封装好的方法,出点错误就摸不着头绪,事倍功半。