[英]Pass parameters to Stored Procedure with single quotes
我正在使用下面的代碼執行存儲過程。 但是問題是字符串strGroup
是一個硬編碼的值,我需要將字符串用單引號引起來,並且當我運行此字符串時,SP不會得到執行。
碼:
protected void Page_Load(object sender, EventArgs e)
{
string CS = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(CS);
SqlCommand command = new SqlCommand();
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable dt = new DataTable();
string strGroup = "'Sub Group'";
try
{
connection.Open();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "SP_Code";
command.Parameters.AddWithValue("@Group",strGroup);
adapter = new SqlDataAdapter(command);
adapter.Fill(dt);
var query = from r in dt.AsEnumerable()
where r.Field<string>("Organization") == "Nestle"
select new
{
Department = r["Department "].ToString(),
Group = r["L2 Group"].ToString(),
Code = r["Code"].ToString()
};
GridView1.DataSource = query;
GridView1.DataBind();
}
如果我在SQL Server中使用傳遞參數來執行SP,則它可以完美運行,並且不確定在單引號中傳遞字符串時是否做錯了什么。 當我犯錯時有人可以幫助我嗎?
將變量作為參數發送時,不需要引號。 在某些情況下,人們編寫sql查詢並執行它們。 例如,如果您在代碼中編寫此查詢,則需要添加單引號
var name = "Sefa";
var query = string.Format("INSERT INTO [People](Name) VALUES('{0}')",name);
但是,當通過SqlCommand類進行操作時,可以按原樣發送變量。 因此,只需刪除單引號即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.