VB.net + ADO.net
'ExecuteReader :行セットを返すコマンドの実行時に使用。
'ExecuteScalar :SELECT COUNT(*) …など、データベースから単一の結果のみを取得する際に使用。
'ExecuteNonQuery :INSERT, DELELE, UPDATE, SET ステートメントなど、結果セットを返さないコマンドの実行時に使用。
'ADO.NETの接続には SQL Server 7.0 以降用に最適化された SqlConnection オブジェクトか、 OleDbConnection オブジェクトを使用する。
'SQLServer用接続文字列
Private connectionString As String = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=ユーザーID;Data Source=SQLServerのあるコンピューター名;database=接続するデータベース名;"
'Access用接続文字列
'Private connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Test.mdb"
'*****行セットを返すコマンド*****
Private Sub _ExecuteReader(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oConn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim oCmd As System.Data.OleDb.OleDbCommand
Dim oReader As System.Data.OleDb.OleDbDataReader
oConn.Open()
oCmd = oConn.CreateCommand()
'応答が帰ってくるまでのタイムアウトを15分に設定
oCmd.CommandTimeout = 15 * 60
oCmd.CommandText = "SELECT * FROM test"
'ExecuteReader :行セットを返すコマンドの実行時に使用。
oReader = oCmd.ExecuteReader()
While oReader.Read()
Debug.WriteLine(CStr(oReader("nox")) & "," & CStr(oReader("name")))
End While
oReader.Close()
oConn.Close()
End Sub
'*****SELECT COUNT(*) …など、データベースから単一の結果のみを取得する*****
Private Sub _ExecuteScalar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim oConn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim oCmd As System.Data.OleDb.OleDbCommand
oConn.Open()
oCmd = oConn.CreateCommand()
'応答が帰ってくるまでのタイムアウトを15分に設定
oCmd.CommandTimeout = 15 * 60
oCmd.CommandText = "SELECT COUNT(*) FROM test"
'ExecuteScalar :SELECT COUNT(*) …など、データベースから単一の結果のみを取得する際に使用。
Debug.WriteLine(oCmd.ExecuteScalar().ToString)
oConn.Close()
End Sub
'*****INSERT, DELELE, UPDATE, SET ステートメントなど、結果セットを返さないコマンド*****
Private Sub _ExecuteNonQuery(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim oConn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim oCmd As System.Data.OleDb.OleDbCommand
oConn.Open()
oCmd = oConn.CreateCommand()
'応答が帰ってくるまでのタイムアウトを15分に設定
oCmd.CommandTimeout = 15 * 60
oCmd.CommandText = "delete from test where nox=1"
'ExecuteNonQuery :INSERT, DELELE, UPDATE, SET ステートメントなど、結果セットを返さないコマンドの実行時に使用。
Dim resolt As Integer = oCmd.ExecuteNonQuery()
'影響を受けた行数
Debug.WriteLine(resolt.ToString)
oConn.Close()
End Sub
▼うまく接続できない場合には、OleDbConnection をウィザードで接続することができます
<新しい接続>を選択するとこによりウィザードが起動します
ウィザードで接続が確立したら上記ソースの OleDbConnection 部分を次のように変更します。
Dim oConn As System.Data.OleDb.OleDbConnection = OleDbConnection1
▼作成したプログラムを再配布するには
配布先のPCには、.NET Framework と MDAC が必要です。
両方ともMicrosoftに再配布可能パッケージがありますのでダウンロードして同時に配布する必要があります。