string sql = "select * from publisher where title like "'"+tbproperty.text+";
但它`不工作!
問候..
string sql = "select * from publisher where title like "'"+tbproperty.text+";
但它`不工作!
問候..
修正..
string sql = "select * from publisher where title like '" + tbproperty.text + "'";
嘿聽..我有我的功能在我的班,但tbproperty不顯示在我的課堂.. ??我該怎麼做 ?? – Azka 2010-05-10 05:11:26
請把你的代碼放在這裏,以便我們分析和檢查。 – 2010-05-10 05:12:20
@Azka - 只有你知道'tbproperty'存在的位置;如果你正在獨立於UI(你應該)做你的數據訪問,那麼你必須將所需的標題作爲參數傳遞給你的方法。 – 2010-05-10 05:13:54
使用SqlParameter
:
SqlCommand cmd = new SqlCommand("select * from publisher where title like @title");
cmd.Parameters.AddWithValue("@title", tbProperty.Text);
如果您需要添加更多的參數,然後執行以下操作(如:輸出參數):
SqlParameter param = new SqlParameter("@param ", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(param);
這意味着您不需要構建字符串本身並停止SQL注入。
+1希望我能+10000你的答案!!始終總是(並且沒有例外)使用參數化查詢。 – 2010-05-10 05:12:19
隨着LIKE
,如果你希望開始/結束你需要一些通配符如'%'
比賽,我假設用戶不加入那些;但是 - 重要:don't concatenate user input。永遠。你想要的東西,如:
sql = "select * from publisher where title like @arg";
隨着@arg
定義爲參數,用值是這樣的:
cmd.Parameters.AddWithValue("@arg", "%" + tbproperty.text + "%");
會發生什麼 - 它是如何失敗? – Mark 2010-05-10 05:09:52
有關信息,您在文字後缺少結尾引號,但大部分答案和評論都告訴您; **使用參數**。 – 2010-05-10 05:16:32