VB.net Framework : OracleClient または Odbc によるアクセス

  System.Data.OracleClient 名前空間の使用



Imports System.Data.OracleClient

Module MyModule

' ********************************************************
' 接続 / 読み込み / 更新
' ********************************************************
Sub Main()

	' Oracle 接続用オブジェクト
	Dim myCon As New OracleConnection()
	' Oracle コマンド用オブジェクト
	Dim myCommand As New OracleCommand()
	' リーダ
	Dim myReader As OracleDataReader 
	' SQL文字列格納用
	Dim Query As String = Nothing

	' 接続文字列の作成
	myCon.ConnectionString = _
		"Server=night/xe;" + _
		"User ID=lightbox;" + _
		"Password=lightbox;"

	' *******************************************
	' 接続
	' *******************************************
	Try
		' 接続文字列を使用して接続
		myCon.Open()
		' コマンドオブジェクトに接続をセット
		myCommand.Connection = myCon
		' コマンドを通常 SQL用に変更
		myCommand.CommandType = System.Data.CommandType.Text
	Catch ex As Exception
		Console.WriteLine(ex.Message)
		Return
	End Try

	Query = "select * from 社員マスタ"
	myCommand.CommandText = Query

	' *******************************************
	' レコードセット取得
	' *******************************************
	Try
		myReader = myCommand.ExecuteReader
	Catch ex As Exception
		myCon.Close()
		Console.WriteLine(ex.Message)
		Return
	End Try

	' 列数
	Dim nCols As Integer = myReader.FieldCount
	Dim fldType As System.Type

	' カラムループ用
	Dim idx As Integer
	Do While myReader.Read()
		For idx = 0 To nCols - 1

			if idx <> 0 then
				Console.Write(",")
			end if

			' NULL でない場合
			If Not myReader.IsDBNull(idx) Then
				fldType = myReader.GetFieldType(idx)
				If fldType.Name = "String" Then

					Console.Write(myReader.GetValue(idx) + "")

				ElseIf fldType.Name = "Int32" Then

					Console.Write(myReader.GetInt32(idx).ToString() + "")

				ElseIf fldType.Name = "DateTime" Then

					Console.Write(myReader.GetDateTime(idx).ToString() + "")

				Else

					Console.Write(myReader.GetValue(idx).ToString() + "")

				End If
			Else
				Console.Write("")
			End If
		Next
		' 行の最後
		Console.WriteLine("")

	Loop

	' リーダを使い終わったので閉じる
	myReader.Close()


	' *******************************************
	' 更新 SQL 実行
	' *******************************************
	Query = "update 社員マスタ set 生年月日 = '2000/01/01' where 生年月日 is NULL"
	myCommand.CommandText = Query
	Try
		myCommand.ExecuteNonQuery()
	Catch ex As Exception
		myCon.Close()
		Console.WriteLine(ex.Message)
		Return
	End Try

	' *******************************************
	' 接続解除
	' *******************************************
	myCon.Close()

End Sub

End Module



System.Data.OleDb

MDB ( Access ) へのアクセス



  System.Data.Odbc 名前空間の使用



Imports System.Data.Odbc

Module MyModule

' ********************************************************
' 接続 / 読み込み / 更新
' ********************************************************
Sub Main()

	' Odbc 接続用オブジェクト
	Dim myCon As New OdbcConnection()
	' Odbc コマンド用オブジェクト
	Dim myCommand As New OdbcCommand()
	' リーダ
	Dim myReader As OdbcDataReader 
	' SQL文字列格納用
	Dim Query As String = Nothing

	' DSN接続文字列の作成
	myCon.ConnectionString = _
		"DSN=MySQL514;" + _
		"DATABASE=lightbox;" + _
		"UID=root;" + _
		"PWD=password;"

	' ドライバ使用接続文字列の作成
	'myCon.ConnectionString = _
	'	"Driver={MySQL ODBC 5.1 Driver};" + _
	'	"SERVER=localhost;" + _
	'	"DATABASE=lightbox;" + _
	'	"UID=root;" + _
	'	"PWD=password;" + _
	'	"Charset=sjis;"

	' ドライバ使用接続文字列の作成
	' ※ SERVER は TNS Service Name でも可
	'myCon.ConnectionString = _
	'	"Driver={Microsoft ODBC for Oracle};" + _
	'	"SERVER=pcname/ORCL;" + _
	'	"UID=lightbox;" + _
	'	"PWD=lightbox;"

	' Oracle 純正ドライバ使用接続文字列の作成
	' ※ DBQ は TNS Service Name でも可
	'myCon.ConnectionString = _
	'	"Driver={Oracle in XE};" + _
	'	"DBQ=pcname/ORCL;" + _
	'	"UID=lightbox;" + _
	'	"PWD=lightbox;"

	' *******************************************
	' 接続
	' *******************************************
	Try
		' 接続文字列を使用して接続
		myCon.Open()
		' コマンドオブジェクトに接続をセット
		myCommand.Connection = myCon
		' コマンドを通常 SQL用に変更
		myCommand.CommandType = System.Data.CommandType.Text
	Catch ex As Exception
		Console.WriteLine(ex.Message)
		Return
	End Try

	Query = "select * from 社員マスタ"
	myCommand.CommandText = Query

	' *******************************************
	' レコードセット取得
	' *******************************************
	Try
		myReader = myCommand.ExecuteReader
	Catch ex As Exception
		myCon.Close()
		Console.WriteLine(ex.Message)
		Return
	End Try

	' 列数
	Dim nCols As Integer = myReader.FieldCount
	Dim fldType As System.Type

	' カラムループ用
	Dim idx As Integer
	Do While myReader.Read()
		For idx = 0 To nCols - 1

			if idx <> 0 then
				Console.Write(",")
			end if

			' NULL でない場合
			If Not myReader.IsDBNull(idx) Then
				fldType = myReader.GetFieldType(idx)
				If fldType.Name = "String" Then

					Console.Write(myReader.GetValue(idx) + "")

				ElseIf fldType.Name = "Int32" Then

					Console.Write(myReader.GetInt32(idx).ToString() + "")

				ElseIf fldType.Name = "DateTime" Then

					Console.Write(myReader.GetDateTime(idx).ToString() + "")

				Else

					Console.Write(myReader.GetValue(idx).ToString() + "")

				End If
			Else
				Console.Write("")
			End If
		Next
		' 行の最後
		Console.WriteLine("")

	Loop

	' リーダを使い終わったので閉じる
	myReader.Close()


	' *******************************************
	' 更新 SQL 実行
	' *******************************************
	Query = "update 社員マスタ set 生年月日 = '2000/01/01' where 生年月日 is NULL"
	myCommand.CommandText = Query
	Try
		myCommand.ExecuteNonQuery()
	Catch ex As Exception
		myCon.Close()
		Console.WriteLine(ex.Message)
		Return
	End Try

	' *******************************************
	' 接続解除
	' *******************************************
	myCon.Close()

End Sub

End Module











  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ