using (SqlConnection conn = new SqlConnection(connection))
{
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = StoredProcedure;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
foreach (var item in reportParams)
{
cmd.Parameters.Add(new SqlParameter("@" + item.ParameterName, item.FieldValue ));
}
da.SelectCommand = cmd;
da.Fill(ds);
conn.Close();
}
但是如果我改变了
,这就失败了 cmd.Parameters.Add(new SqlParameter("@" + item.ParameterName, "'" item.FieldValue"'" ));
然后失败的条件通过,工作的事情不会过去。
使用或不使用“'”的任何参数值执行存储过程的正确方法是什么?
条件失败时,我在da.Fill(ds);
收到错误
答案 0 :(得分:0)
public void ExecutePRC(string userId,ref string RetMsg) { 尝试 {
string RetVal="";
SqlCommand cmd= new SqlCommand("ProcedureName",ConnectionObject);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@USER_ID",SqlDbType.Int);
SqlParameter outParameter = new SqlParameter("@RETVAL",SqlDbType.VarChar,10);
outParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outParameter);
outParameter = new SqlParameter("@RETMSG",SqlDbType.VarChar,255);
outParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outParameter);
// assign Value to parameter userId
cmd.Parameters["@USER_ID"].Value=userId;
cmd.ExecuteNonQuery();
RetVal = cmd.Parameters["@RETVAL"].Value.ToString();
RetMsg = cmd.Parameters["@RETMSG"].Value.ToString();
}
catch(Exception ex)
{
//Use Ex.Message Exception
}
}
// InputParameter UserId(Int) // OutputParameter REtVAL,RETMSG(varchar)