|
> 現在配列に含まれるデータを、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
以上。
|