存储过程实现执行带参数的SQL语句
请问存储过程如何实现执行带参数的SQL语句?
string[] list = 参数集合;
for (int i = 0; i < list.Length; i++)
{
result = string.Format("@Param_{0}_{1}",sign, i);//拼接的SQL语句
......
Parameters.Add(
new SqlParameter(string.Format("@Param_{0}_{1}",sign, i), SqlDbType.NVarChar) { Value = list[i].Trim() }
);//对应的参数
}
Select * from tempTable where Col1 = @col1 and Col2 = @col2;
Select * from tempTable where Col1 = 'col1' and Col2 = 'col2';
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds);
//SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
conn.Close();
return ds;
}
catch
{
conn.Close();
throw;
}
}
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
//判断数据库连接状态
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
//判断是否需要事物处理
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
[解决办法]
写个存储过程吧。
[解决办法]
你那个已经是存储过程了,储存过程只传入参数,检查参数在客户端代码,例如使用SqlParamter,或者自己写排除函数。这样就很安全
[解决办法]
[解决办法]
打打酱油路过···看楼上大神回复