簡體   English   中英

如何在c#Textbox中允許帶有SQL空格的文本

[英]How to allow text with spaces in SQL from c# Textbox

我有這個代碼,允許您在文本框中輸入句子,它插入SQL Server中的表

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
   con.Open();
   SqlCommand com = new SqlCommand("Insert Into tbl_notes (Notes,date_time) Values('" + txtbox_Notes.Text + "','" + DateTime.Now + "')", con);
   com.ExecuteNonQuery();
   txtbox_Notes.Text = "";
}

但是當我按下調用此功能的按鈕時,它會發出錯誤

字符串或二進制數據將被截斷

該錯誤表示您嘗試在Notes列中插入的字符串的長度超過該列定義中允許的最大大小。 嘗試將txtbox_Notes.Text的值截斷為指定的列長度。

我還建議你閱讀一些關於SQL注入的內容,並考慮到你執行這個插入命令的方式真的很容易受到這種攻擊。 正如對該問題的評論中所建議的那樣,您還可以使用存儲過程來執行插入,這不僅提供(薄)安全層,而且還使您的代碼更具可讀性。

您需要在查詢中使用參數,否則您將使其非常容易出錯,並且也很容易入侵SQL。

試試這樣的事情,看看它是否適合你

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
    {
        con.Open();
        SqlCommand com = new SqlCommand("Insert Into tbl_notes (Notes,date_time) Values(@Notes,@DateTime)", con);
        com.Parameters.Add(new SqlParameter("@Notes", txtbox_Notes.Text));
        com.Parameters.Add(new SqlParameter("@DateTime", DateTime.Now));
        com.ExecuteNonQuery();
        txtbox_Notes.Text = "";
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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