簡體   English   中英

用單引號將參數傳遞給存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM