web-dev-qa-db-ja.com

SQLReaderからDataGridViewに入力する

私が書いているいくつかのコードに少し立ち往生しています

概要は、SQLデータベースからいくつかのデータを読み込んでいて、それをフォームのDataGridViewに表示したいということです。データベースから返されるデータがあることを確認しましたが、なぜこれが表示されないのかわかりません。私はインターネットからいくつかのチュートリアルに従いましたが、これまでのところうまくいきませんでした

これが私のコードです

Private Sub PopulateGrid()
    Dim Con As New SqlClient.SqlConnection
    Dim strCon As String = CropTrackMod.strConn
    Dim strCommand As String = "select * from customer"


    Try
        Con.ConnectionString = strCon
        Dim Cm As New SqlClient.SqlCommand(strCommand, Con)
        Con.Open()
        Dim reader As SqlClient.SqlDataReader = Cm.ExecuteReader()

        'test to confirm data received
        reader.Read()
        MsgBox(reader.Item("ContactName"))


        DataGridView1.AutoGenerateColumns = True
        DataGridView1.DataSource = reader
        DataGridView1.Refresh()



    Catch ex As Exception
        MessageBox.Show(ex.Message, "Error")

    Finally
        If Con.State = ConnectionState.Open Then
            Con.Close()
        End If
    End Try

End Sub

私もデータテーブルを実装しようとしましたが、データ型で変換エラーを受け取りました。助けていただければ幸いです。

みんなありがとう

6
PowerMan2015

WinFormsのデータグリッドビューにデータリーダーを直接バインドすることはできません。代わりに、リーダーでデータテーブルをロードし、DataGridViewのデータソースにデータテーブルを割り当てることができます。

Dim dt = new DataTable()
dt.Load(reader)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()
13
Steve