2016-08-17 1 views
0

リストボックスにクエリによって生成された値を設定しようとしていますが、コードは問題なく実行されますが、リストボックスには結果が表示されません。listBoxにSQLクエリ結果を設定する

String sql = "SELECT * FROM products where code = "+textBox1.Text; 
       SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn); //c.con is the connection string 
       using (SqlCommand cmd = new SqlCommand(sql, conn)) 
       { 
        conn.Open(); 
        using (SqlDataReader reader = cmd.ExecuteReader()) 
        { 
          if (reader.Read()) 
          { 
           listBox1.Items.Add(reader["description"].ToString() + ": "+reader["price"].ToString()); 
           listBox1.Refresh(); 
          } 
         reader.Close(); 
         conn.Close(); 
        } 
       } 

答えて

3

あなたのコード列が文字列型の場合

String sql = "SELECT * FROM products where code = '"+textBox1.Text + "'"; 
    SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn); //c.con is the connection string 
    using (SqlCommand cmd = new SqlCommand(sql, conn)) 
    { 
      conn.Open(); 
      using (SqlDataReader reader = cmd.ExecuteReader()) 
      { 
       while(reader.Read()) 
       { 
        listBox1.Items.Add(reader["description"].ToString() + ": "+reader["price"].ToString()); 
       } 
       reader.Close();     
      } 
      conn.Close(); 
    } 

また代わりの場合は一方で、読者のすべてのレコードを横断するために使用し、すべての値を追加します。また、usingステートメントの後に接続を閉じます。 間違ったシーケンスが問題を引き起こしていると確信しています。

+0

ありがとう、しばらくの間不満を抱いてしまった:) –

+0

お手伝いします。答えを投票してください。 –

+0

まだ新しいbrah ...私の担当者は7だから私はまだ傾けるが、すぐに私は15病気に達すると –

0

ここではコードについていくつかの仮定をしていますが、「コード」は数字ですか?そうでない場合は、試しましたか?

String sql = "SELECT * FROM products where code = '"+textBox1.Text+"'"; 

?その後、

+0

にも達し、あなたのコードです: listBox1.Items.Add –

+0

はい「のコードは、」データベースのカラム名であり、それはそのポイントに到達した場合はわからない」 –

+0

列のどのような種類のコードですか? –