|
> 現在配列に含まれるデータを、DataGridViewにバインドする方法で悩んでいます。
手元のプロジェクトをザッと編集したコードをアップします。 SQL Server からデータを読み取ってDataGridViewに表示するものです。 細かい設定は割愛していますが、まぁ〜参考に!
※ GetData() の、『DataGridView1.Rows.Add(objDt)』部分が、今回のミソ ですネ!〜
※ 適宜、Imports を追加して下さい。 細かいエラー処理も割愛してます〜
Private Sub InitGrid()
With DataGridView1 .Columns.Add("Hoge1", "Hoge1") .Columns.Add("Hoge2", "Hoge2") .Columns.Add("Hoge3", "Hoge3") .Columns.Add("Hoge4", "Hoge4") .Columns.Add("Hoge5", "Hoge5") End With
End Sub
Public Function GetDBConnectString() As String
Dim AdoSQL As SqlConnectionStringBuilder
AdoSQL = New SqlConnectionStringBuilder
With AdoSQL .DataSource = "HOGE_SERVER" .InitialCatalog = "HOGE_TABLE" .UserID = "hogeUser" .Password = "hogePass" .IntegratedSecurity = False .ConnectTimeout = 10 End With
Return AdoSQL.ToString
End Function
Private Sub GetData()
Dim bRet As Boolean Dim AdoSQL As StringBuilder Dim objDt(6) As Object
Using AdoDB As SqlConnection = New SqlConnection(GetDBConnectString()) Try AdoDB.Open() bRet = True Catch ex As SqlException bRet = False End Try
If bRet Then AdoSQL = New StringBuilder
With AdoSQL .Length = 0 .Append("select ") .Append("Hoge1,") .Append("Hoge2,") .Append("Hoge3,") .Append("Hoge4,") .Append("Hoge5 ") .Append("from ") .Append("HOGE_TABLE") End With
Using AdoDA As SqlDataAdapter = New SqlDataAdapter Using AdoDS As DataSet = New DataSet AdoDS.Clear()
Using AdoCMD As SqlCommand = AdoDB.CreateCommand With AdoCMD .CommandType = CommandType.Text .CommandTimeout = AdoDB.ConnectionTimeout .CommandText = AdoSQL.ToString End With
AdoDA.SelectCommand = AdoCMD
Try AdoDA.Fill(AdoDS, "HOGE_TABLE") bRet = True Catch ex As SqlException bRet = False End Try End Using
If bRet Then Using dt As DataTable = AdoDS.Tables("HOGE_TABLE") If dt.Rows.Count > 0 Then
DataGridView1.Rows.Clear()
For Each dr As DataRow In dt.Rows objDt(0) = CType(dr.Item("Hoge1"), Object) objDt(1) = CType(dr.Item("Hoge2"), Object) objDt(2) = CType(dr.Item("Hoge3"), Object) objDt(3) = CType(dr.Item("Hoge4"), Object) objDt(4) = CType(dr.Item("Hoge5"), Object)
DataGridView1.Rows.Add(objDt) Next End If End Using End If End Using End Using
AdoDB.Close() End If End Using
End Sub
以上。
|