LoginSignup
6
10

More than 5 years have passed since last update.

VB.NET で DB接続 した記録

Last updated at Posted at 2019-02-08

やりいたいこと

  • 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 クラスの情報が代入される。

次は

  • ループでまわしてデータを取得したり??

お手本にしたQiitaの記事

6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10