やりいたいこと
- VB.NET で DB につないで SELECT して作成したテーブル用クラスに情報ぶち込みたい。
- とりあえず VisualBasic はじめて 3日目。しんどい。勉強中です。
環境
- Microsoft Visual Studio 2015(Visual Basic 2015)
- Widnwos 10
- PostgreSQL 10.6
下準備
- 「NuGetパッケージ管理」から Dapper と Npgsql をインストールする。
- Dapper がクラスに代入する際につかうlib
- Npgsql がDB接続時につかうlib
実装
① テーブル読み込み用クラスを作成
下記クラスと同等のテーブルが PostgreSQL の中に存在する
Public Class TableName
Public Property ID As Integer
Public Property ITEM1 As String
Public Property ITEM2 As String
End Class
② DB 関連の処理を作成
Imports Npgsql
Public Class DB
' プロパティ
Private Property m_connection As IDbConnection
' 接続情報の作成
Public Sub dbConnect()
Dim strConn As String = String.Format("Server=localhost;Port=XXXX;User Id={0};Password={1};Database={2}",
"ユーザ名", "パスワード", "接続DB名")
m_connection = New NpgsqlConnection(strConn)
End Function
' 接続
Public Sub dbConnectionOpen()
If Not m_connection Is Nothing Then
m_connection.Open()
End If
End Function
' 切断
Public Sub dbConnectionClose()
If Not m_connection Is Nothing Then
m_connection.Close()
End If
End Sub
' 検索
Public Function dbSelect(Of talbe_name)(ByVal query As String) As List(Of table_name)
Return Dapper.SqlMapper.Query(Of table_name)(m_connection, query).ToList()
End Function
End Class
③ 実行側をつくる
' DB接続
dbConnect()
dbConnectionOpen()
' 検索用SQLを作成
Dim strSql As String = "SELECT * FROM TableName"
' select する
Dim getList As List(Of TableName)
getList = dbSelect(Of TableName)(strSql)
' DB 切断
dbConnectionClose()
↑ このとき、 getList 変数には List で ① で作成した TableName クラスの情報が代入される。
次は
- ループでまわしてデータを取得したり??