亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL LIKE 表達式給出空結果

SQL LIKE 表達式給出空結果

C#
寶慕林4294392 2022-10-23 15:35:27
似乎使用 Like 需要一些精確的格式,我不知道。這是代碼:private void DoFilter(){    using (connection = new SqlConnection(connectionString))    using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Customers WHERE CompanyName = @filter + '%'", connection))    {        adapter.SelectCommand.Parameters.AddWithValue("@filter", txtFilter.Text.Trim());        DataTable TCustomers = new DataTable();        adapter.Fill(TCustomers);        lstCustomers.DisplayMember = "CompanyName";        lstCustomers.ValueMember = "Id";        lstCustomers.DataSource = TCustomers;    }}該代碼不會引發任何錯誤。它只是將 ListBox (lstCustomers) 留空。(txtFilter 是一個TextBox,過濾字符串就在其中)。
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

使用like operator而不是=

SELECT * FROM Customers WHERE CompanyName like @filter + '%'"


查看完整回答
反對 回復 2022-10-23
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

'Like' 應該用作(SELECT * FROM Customers WHERE CompanyName LIKE @filter + '%'):


private void DoFilter()

{

    using (connection = new SqlConnection(connectionString))

    using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Customers WHERE CompanyName LIKE @filter + '%'", connection))

    {

        adapter.SelectCommand.Parameters.AddWithValue("@filter", txtFilter.Text.Trim());


        DataTable TCustomers = new DataTable();

        adapter.Fill(TCustomers);


        lstCustomers.DisplayMember = "CompanyName";

        lstCustomers.ValueMember = "Id";

        lstCustomers.DataSource = TCustomers;


    }

}


查看完整回答
反對 回復 2022-10-23
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您不是在使用LIKE運算符,而是在使用=運算符。

它應該是:

using (SqlDataAdapter adapter = new SqlDataAdapter(
    "SELECT * FROM Customers WHERE CompanyName LIKE @filter + '%'", connection))

按照您編寫它的方式,SQL 將匹配一個末尾帶有 a 的精確字符串%,因此您不會得到任何結果。



查看完整回答
反對 回復 2022-10-23
  • 3 回答
  • 0 關注
  • 200 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號