[英]Selecting Items from Database that Matches with the string Based on Entered Characters
我想選擇與輸入字符串匹配的項目。似乎查詢正在選擇至少包含匹配字母的所有項目。
我不希望完全匹配..我想選擇與開頭匹配的字符串..就像我鍵入'it'一樣,我想列出所有以'it'開頭的字符串
我在做什么錯?
using (SqlConnection conn = new SqlConnection(constr))
{
try
{
conn.Open();
SqlDataReader myReader = null;
string commandText = "SELECT itemname,rate,stock FROM mytable WHERE itemname LIKE @id";
SqlCommand command = new SqlCommand(commandText, conn);
string searchParam = String.Format("%{0}%", text_item.Text);
command.Parameters.AddWithValue("@id", searchParam);
using (SqlDataAdapter sda = new SqlDataAdapter(command))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
不要使用LIKE
而是使用=
。 並將您的字符串更改為確切的字符串,而不是%text%
string commandText = "SELECT itemname,rate,stock FROM mytable WHERE itemname = @id";
...
string searchParam = text_item.Text;
----------------------編輯------------------------
在更新問題之后,答案將是:
string searchParam = string.Format("{0}%", text_item.Text);
不需要前一個%,因為您不希望在此處使用通配符。
而不是“ Like”,您應該使用“ =”。 如果您想使用通配符進行搜索,通常會使用Like。
如果您希望查詢返回以開頭的結果,請將參數值更改為
string searchParam = String.Format("{0}%", text_item.Text);
您的代碼運行良好。 是的,您可以在查詢中使用LIKE運算符。 請調試並檢查“ text_item”變量中的內容。 縮小搜索范圍。 你可以參考鏈接
檢查like運算符的語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.