Back to Top

Daily Archives: 2016年3月25日

VB.NET ADO.NETでDBに接続する

ADO.NETで、SQL Serverへの接続する方法を説明します。

ADO.NETでDBへの接続する場合、基本はSQL Serverでも、Oracleでもほとんど違いはありません。

他のデータべス接続の参考になると思います。

ADO.NETでSQL Serverへの接続する

Dim builder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder()
builder.DataSource = ".\SQLEXPRESS"
builder.AttachDBFilename = "D:\DB\TestDB.mdf"
builder.IntegratedSecurity = True
builder.UserInstance = True
builder.MultipleActiveResultSets = True
'builder.UserID = 
'builder.Password =
'builder.InitialCatalog = "pubs"

Dim ConnectString As String = builder.ToString()

Dim sqlConnect As New SqlConnection(ConnectString)

sqlConnect.Open()

MessageBox.Show("Microsoft SQL Server に接続されました")

' データベース接続を閉じる
sqlConnect.Close()
sqlConnect.Dispose()

※必ずしもSqlConnectionStringBuilderを使用する必要はありません。

 

VB.NET ArrayListのジェネリッククラス

ArrayListのジェネリック版List・LinkedList・Stack・Queueの説明をします。

インスタンス化するときに、データ型を指定するので、取り出すときキャストする必要がありません。どんなデータ型でも使用できます。

注意としては、もともとオブジェクト型なので、Stringでインスタンス化しても他の型のデータも受け入れてしまうところです。

Listクラス

'String型のListとしてインスタンス化
Dim strList As New List(Of String)

strList.Add("AAA")
strList.Add("BBB")

'インデックスによる参照(キャスト不要)
Dim s As String = strList(1)

'Integer型のListとしてインスタンス化
Dim intList As New List(Of Integer)

intList.Add(100)
intList.Add(200)

Dim v As Integer = intList(1)

LinkedListクラス

Listのようにインデックスによるデータの参照はできませんが、リストの途中への要素の削除と挿入が高速にできます。

Dim strLinkList = New LinkedList(Of String)

'1つ目の要素を追加
strLinkList.AddFirst("First")

'先頭の要素の後に追加
strLinkList.AddAfter(strLinkList.First, "After")

'すべての要素を順番に表示
For Each s In strLinkList
    MessageBox.Show(s)
Next

Stackクラス

先入れ後出しのクラスです。

Dim intStack = New Stack(Of Integer)

'要素を追加
intStack.Push(100)
intStack.Push(200)
intStack.Push(300)

'先頭の要素を取得して削除
Dim v1 As Integer = intStack.Pop()

'先頭の要素を取得(削除しません)
Dim v2 As Integer = intStack.Peek()

'要素を全て削除
intStack.Clear()

Queueクラス

先入れ先出しのクラスです。

Dim intQueue = New Queue(Of Integer)

'要素を追加
intQueue.Enqueue(100)
intQueue.Enqueue(200)
intQueue.Enqueue(300)

'先頭の要素を取得して削除
Dim q1 As Integer = intQueue.Dequeue()

'先頭の要素を取得
Dim q2 As Integer = intQueue.Peek()

'すべての要素の削除
intQueue.Clear()