2016-07-14 18 views
0

入力した文字列と一致する項目を選択します。一致する文字を含むすべての項目がクエリで選択されているようです。入力した文字列に基づいて文字列に一致するデータベースから項目を選択

私は、私は「それは私が「が」で始まるすべての文字列をリストしたいと入力すると完全に一致するstarting..Likeに一致する文字列を選択したい..私

を望んでいません

何が間違っていますか?

enter image description here

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); 
          } 

         } 
+0

@ 3615質問を回答として投稿できますか? – techno

答えて

1

LIKEを使用しますが、=を使用しないでください。そして、代わりに%text%

string commandText = "SELECT itemname,rate,stock FROM mytable WHERE itemname = @id"; 
... 
string searchParam = text_item.Text; 

の、あなたの文字列は、正確な文字列に変更---------------------- EDITED --------- ---------------

更新質問した後、答えは次のようになります。あなたは、ワイルドカードを望んでいないので、

string searchParam = string.Format("{0}%", text_item.Text); 

最初の%は、必要ありませんそこ。

+0

私は正確に一致したい..更新を参照してください。 – techno

+0

ありがとう...それは働く.. – techno

0

「好き」の代わりに「=」を使用する必要があります。 Likeは、通常、ワイルドカードを使用して検索する場合に使用されます。あなたのクエリが結果が始まる戻したい場合

+0

私は正確に一致したい...ちょうど入力された文字列と一致する文字列を見つける..更新を参照してください。 – techno

0

は、あなたのコードは、罰金を実行している

string searchParam = String.Format("{0}%", text_item.Text); 
0

にあなたのパラメータの値を変更します。 はい、クエリでLIKE演算子を使用できます。 「text_item」変数に何が入っているかをうまくデバッグして確認します。 検索の絞り込み like演算子の構文を確認するには、link

を参照してください。

関連する問題