2016-04-13 4 views
0

SQL Serverデータベースのテーブルから10列を読み込んでリストボックスに格納するプログラムがあります。私は1つの列を読んで、このようなリストボックスの中にそれを格納する方法を知っている:For To VBを使用する。 Netで10カラムのデータベースを読み取る

con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True" 
con.Open() 

Dim cmd As New SqlCommand(("SELECT K0 FROM tbl_inven WHERE Serial = '3320'"), con) 
Dim myreader As SqlDataReader 

myreader = cmd.ExecuteReader() 
myreader.Read() 

If myreader.HasRows Then 
    ListBox1.Items.Add(myreader("K0")) 
End If 

con.Close() 

10列を読み込み、リストボックスにそれらを格納する方法は?

私はちょうど10列を読み取るために、SQLクエリを知っている:

SELECT K0, K1, K2, K3, K4, K5, K6, K7, K8, K9 
FROM tbl_inven 
WHERE Serial = '3320' 

は、10列を読み取るために使用することはできますか?私はすでにTOために使用してコードを作成しようとするが、エラー

For i As Integer = 0 To 100 
     con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True" 
     con.Open() 
     Dim cmd As New SqlCommand(("SELECT K'"&i&"' FROM tbl_inven WHERE Serial = '3320'"), con) 
     Dim myreader As SqlDataReader 
     myreader = cmd.ExecuteReader() 
     myreader.Read() 
     If myreader.HasRows Then 
      ListBox1.Items.Add(myreader("")) 
     End If 
     con.Close() 
    Next 

誰もが私の問題を解決するために私を助けることができますか?あなたはその後、10列をしたい場合は

あなたのコードを見ればあなたは100個のSQLクエリを作っている私の悪い英語

+0

あなたはSQLクエリにあるものを模倣するために 'cmd'' SqlCommand'を変更する必要があります。パラメータ化されたクエリを使用することをお勧めします。 – Ian

+0

私はわかりません –

答えて

0

申し訳ありません...最初はSELECT K'0' FROM tbl_inven WHERE Serial = '3200'注意としてK'0'

を翻訳します以下を実行してください

Dim SqlStr as String 
SqlStr = "SELECT " 
For x = 0 to 8 
    SqlStr += "K" & x & ", " 
Next 
SqlStr += ", K9 FROM tbl_inven WHERE Serial = '3200'" 

    con.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=RF_World;Integrated Security=True" 
    con.Open() 
    Dim cmd As New SqlCommand(SqlStr, con) 
     .... 
    con.Close() 
+0

このようなエラーが発生しましたhttp://prntscr.com/arn78d –

+0

あなたは何をリストに追加しようとしていますか?あなたがKを持っていないので、K0、K1、K2 ... K9を持っているので、エラーはKの価値がないことを示しています。 – Mych

+0

私は列K0、K1、K2、K3 ... K9からデータを読み込み、リストボックスに追加しようとしました –

関連する問題