Imports System.Data.Odbc Public Class MyLib Private Shared TargetCsvPath As String ' ****************************************************** ' サンプルの為に、プロパティ用のメソッドを公開(Public) ' ****************************************************** Public Shared Sub GetParam() ' CSV のパスを引数から取得する ' 空白を指定したい場合は、"文字列 文字列" のように指定する Dim arguments As String() = Environment.GetCommandLineArgs() ' 引数は一つのみ許可 if arguments.Length <> 2 then Console.WriteLine("引数を指定して下さい") Return end if ' 引数からエクスポート対象テーブル名を取得 MyLib.TargetCsvPath = arguments(1) End Sub ' ****************************************************** ' データ取得のみの ReadOnly ' ****************************************************** Public Shared ReadOnly Property CsvPath() As String Get MyLib.GetParam() Return MyLib.TargetCsvPath End Get End Property ' ****************************************************** ' エラー処理 ' ****************************************************** Public Shared Sub ErrorAction( ex As OdbcException ) Dim CrLf As String = ControlChars.CrLf Dim errorMessages As String = "" Dim i As Integer For i = 0 To ex.Errors.Count - 1 errorMessages &= _ "Index #" & i.ToString() & CrLf _ & "Message: " & ex.Errors(i).Message & CrLf _ & "NativeError: " & ex.Errors(i).NativeError.ToString() & CrLf _ & "Source: " & ex.Errors(i).Source & CrLf _ & "SQL: " & ex.Errors(i).SQLState & CrLf Next i Console.WriteLine(errorMessages) End Sub End Class Partial Class MyLib ' 接続用のオブジェクト Private myCon As OdbcConnection ' 更新用のオブジェクト Private execCommand As OdbcCommand Private builder As OdbcConnectionStringBuilder Private server_string As String Private database_string As String Private user_string As String Private password_string As String ' ****************************************************** ' 初期処理( コンストラクタ ) ' ****************************************************** Public Sub New(a As String,b As String,c As String,d As String) Me.server_string = a Me.database_string = b Me.user_string = c Me.password_string = d End Sub ' ****************************************************** ' 接続作成 ' ****************************************************** Function Execute( Query As String ) As Boolean ' 接続を開く Try Me.execCommand.CommandText = Query Me.execCommand.ExecuteNonQuery() Catch ex As OdbcException Console.WriteLine("SQL実行エラーです") Call MyLib.ErrorAction( ex ) Return False End Try Return True End Function ' ****************************************************** ' 接続作成 ' ****************************************************** Function CreateConnection( ) As Boolean ' 新しい OdbcConnectionStringBuilder オブジェクトを作成 Me.builder = New OdbcConnectionStringBuilder() ' ドライバ文字列をセット ( 波型括弧{} は必要ありません ) ' 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI builder.Driver = "MySQL ODBC 5.1 Driver" ' 接続用のパラメータを追加 builder.Add("SERVER", Me.server_string) builder.Add("DATABASE", Me.database_string) builder.Add("UID", Me.user_string) builder.Add("PWD", Me.password_string) ' 内容を確認 Console.WriteLine(builder.ConnectionString) ' 新しい OdbcConnection オブジェクトを作成 Me.myCon = New OdbcConnection() ' 接続文字列を設定 Me.myCon.ConnectionString = builder.ConnectionString ' 接続を開く Try Me.myCon.Open() Catch ex As OdbcException Console.WriteLine("接続エラーです") ' Console.WriteLine( ex.Message ) Call MyLib.ErrorAction( ex ) Return False End Try ' 同時に実行用のオブジェクトを作成 execCommand = New OdbcCommand() execCommand.Connection = Me.myCon Return True End Function ' ****************************************************** ' 接続終了 ' ****************************************************** Public Sub EndConnection( ) ' 接続を閉じる Me.myCon.Close() ' OdbcConnection オブジェクトに使用されているすべてのリソースを解放 Me.myCon.Dispose() Me.execCommand.Dispose() ' 処理終了 Console.WriteLine("処理が終了しました") ' 一時停止 Console.Write("Enterキーを押して下さい : ") Console.ReadLine() End Sub End Class