[+/-]
MySQL サーバ データベースへのオープン接続を表します。このクラスを継承することはできません。
MySqlConnection
オブジェクトは、MySQL
Server
データソースへのセッションを示します。MySqlConnection
のインスタンスを作成する際、すべてのプロパティはそれらの初期値に設定されます。それらの値のリストは、MySqlConnection
コンストラクタをご覧ください。
MySqlConnection
が範囲から出ると閉じません。そのため、MySqlConnection.Close
または MySqlConnection.Dispose
を呼び出すことによって、明示的に接続を閉じる必要があります。
例
以下は、MySqlCommand
と
MySqlConnection
を作成する例です。MySqlConnection
が開かれ、MySqlCommand
の
MySqlCommand.Connection
として設定されます。この例はその後
MySqlCommand.ExecuteNonQuery
を呼び出し、接続を閉じます。これを完遂するため、ExecuteNonQuery
は SQL INSERT 文である接続ストリングとクエリ
ストリングに渡されます。
Visual Basic 例 :
Public Sub InsertRow(myConnectionString As String) ' If the connection string is null, use a default. If myConnectionString = "" Then myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass" End If Dim myConnection As New MySqlConnection(myConnectionString) Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)" Dim myCommand As New MySqlCommand(myInsertQuery) myCommand.Connection = myConnection myConnection.Open() myCommand.ExecuteNonQuery() myCommand.Connection.Close() End Sub
C# 例 :
public void InsertRow(string myConnectionString) { // If the connection string is null, use a default. if(myConnectionString == "") { myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"; } MySqlConnection myConnection = new MySqlConnection(myConnectionString); string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"; MySqlCommand myCommand = new MySqlCommand(myInsertQuery); myCommand.Connection = myConnection; myConnection.Open(); myCommand.ExecuteNonQuery(); myCommand.Connection.Close(); }
MySqlConnection
クラスの新規インスタンスを初期化します。
MySqlConnection
の新規インスタンスが作成される時、赤/白のプロパティは、ConnectionString
の関連するキーワードを使って特別に設定されない限り、次の初期値に設定されます。
プロパティ | 初期値 |
ConnectionString |
empty string ("") |
ConnectionTimeout |
15 |
Database |
empty string ("") |
DataSource |
empty string ("") |
ServerVersion |
empty string ("") |
これらのプロパティの値は、ConnectionString
プロパティを使うことによってのみ変更できます。
例
MySqlConnection のオーバーロード メソッド
MySqlConnection
クラスの新規インスタンスを初期化します。
接続ストリングを含むストリングが与えられた時に、MySqlConnection
クラスの新規インスタンスを初期化します。
MySqlConnection
の新規インスタンスが作成される時、赤/白のプロパティは、ConnectionString
の関連するキーワードを使って特別に設定されない限り、次の初期値に設定されます。
プロパティ | 初期値 |
ConnectionString |
empty string ("") |
ConnectionTimeout |
15 |
Database |
empty string ("") |
DataSource |
empty string ("") |
ServerVersion |
empty string ("") |
これらのプロパティの値は、ConnectionString
プロパティを使うことによってのみ変更できます。
例
パラメータ : MySQL データベースを開くのに使用される接続プロパティ。
ConnectionString によって指定されたプロパティ設定で、データベース接続を開きます。
例外 : データソースかサーバの指定なしに接続を開くことができない。
例外 : 接続を開く途中で発生した接続レベル エラー。
MySqlConnection
は、接続プールに利用可能なオープン接続があれば引き出します。もしくは、MySQL
のインスタンスに新しい接続を確立します。
例
以下の例は MySqlConnection
を作成して開き、そのプロパティの一部を表示、そして接続を閉じます。
Visual Basic 例 :
Public Sub CreateMySqlConnection(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ + ControlChars.Cr + "State: " + myConnection.State.ToString()) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + "\nState: " + myConnection.State.ToString()); myConnection.Close(); }
使用中のデータベース、または接続が開いた後に使用されるデータベースの名前を取得します。
戻り値 : 使用中のデータベース名、または接続が開いた後に使用されるデータベースの名前。デフォルト値は空のストリング。
Database
プロパティは動的に更新しません。SQL
文を使って使用中のデータベースを変更すると、このプロパティは誤った値を反映することがあります。ChangeDatabase
メソッドを使って使用中のデータベースを変更すれば、このプロパティは新しいデータベースを反映するよう更新されます。
例
以下の例は MySqlConnection
を作成し、その読み取り専用プロパティの一部を表示します。
Visual Basic 例 :
Public Sub CreateMySqlConnection() Dim myConnString As String = _ "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass" Dim myConnection As New MySqlConnection( myConnString ) myConnection.Open() MessageBox.Show( "Server Version: " + myConnection.ServerVersion _ + ControlChars.NewLine + "Database: " + myConnection.Database ) myConnection.ChangeDatabase( "test2" ) MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _ + ControlChars.NewLine + "Database: " + myConnection.Database ) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection() { string myConnString = "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"; MySqlConnection myConnection = new MySqlConnection( myConnString ); myConnection.Open(); MessageBox.Show( "Server Version: " + myConnection.ServerVersion + "\nDatabase: " + myConnection.Database ); myConnection.ChangeDatabase( "test2" ); MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion + "\nDatabase: " + myConnection.Database ); myConnection.Close(); }
接続の状態を取得します。
戻り値 :
System.Data.ConnectionState
値のビットごとの組み合わせ。デフォルトは
Closed
。
許可されている状態の変更は以下 :
接続オブジェクトの Open
メソッドを使用する、Closed
から Open
まで。
接続オブジェクトの Close
メソッドかDispose
メソッドを使用する、Open
から Closed
まで。
例
以下の例は MySqlConnection
を作成して開き、そのプロパティの一部を表示、そして接続を閉じます。
Visual Basic 例 :
Public Sub CreateMySqlConnection(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ + ControlChars.Cr + "State: " + myConnection.State.ToString()) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + "\nState: " + myConnection.State.ToString()); myConnection.Close(); }
クライアントが接続された MySQL サーバのバージョンを含むストリングを取得します。
戻り値 : MySQL のインスタンスのバージョン。
例外 : 接続が開いていません。
例
以下の例は MySqlConnection
を作成して開き、そのプロパティのい一部を表示、そして接続を閉じます。
Visual Basic 例 :
Public Sub CreateMySqlConnection(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ + ControlChars.Cr + "State: " + myConnection.State.ToString()) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + "\nState: " + myConnection.State.ToString()); myConnection.Close(); }
データベースへの接続を閉じます。この方法は、どんなオープン接続を閉じる時にも適しています。
Close
メソッドはすべての保留トランザクションをロールバックします。そして接続を接続プールにリリース、または接続プールが無効になっている場合は接続を閉じます。
アプリケーションは一度以上、Close
を呼び出すことができます。例外は生成されません。
例
以下の例は MySqlConnection
を作成して開き、そのプロパティの一部を表示、そして接続を閉じます。
Visual Basic 例 :
Public Sub CreateMySqlConnection(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ + ControlChars.Cr + "State: " + myConnection.State.ToString()) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + "\nState: " + myConnection.State.ToString()); myConnection.Close(); }
MySqlConnection
に関連するMySqlCommand
オブジェクトを作成し、戻します。
戻り値 :
MySqlCommand
オブジェクト。
データベースのトランザクションを開始します。
戻り値 : 新しいトランザクションを表すオブジェクト。
例外 : 並列トランザクションはサポートされていません。
このコマンドは、MySQL BEGIN TRANSACTION コマンドに相当します。
トランザクションは、MySqlTransaction.Commit
または MySqlTransaction.Rollback
メソッドを使用して、明示的にコミットするかロールバックする必要があります。
隔離レベルを指定しない場合、デフォルトの隔離レベルが使用されます。BeginTransaction
メソッドで隔離レベルを指定するには、iso
パラメータを受け取るオーバーロードを使用します。
例
次は、MySqlConnection
と
MySqlTransaction
を作成する例です。BeginTransaction
、MySqlTransaction.Commit
、MySqlTransaction.Rollback
の各メソッドの使い方も示します。
Visual Basic 例 :
Public Sub RunTransaction(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() Dim myCommand As MySqlCommand = myConnection.CreateCommand() Dim myTrans As MySqlTransaction ' Start a local transaction myTrans = myConnection.BeginTransaction() ' Must assign both transaction object and connection ' to Command object for a pending local transaction myCommand.Connection = myConnection myCommand.Transaction = myTrans Try myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')" myCommand.ExecuteNonQuery() myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')" myCommand.ExecuteNonQuery() myTrans.Commit() Console.WriteLine("Both records are written to database.") Catch e As Exception Try myTrans.Rollback() Catch ex As MySqlException If Not myTrans.Connection Is Nothing Then Console.WriteLine("An exception of type " + ex.GetType().ToString() + _ " was encountered while attempting to roll back the transaction.") End If End Try Console.WriteLine("An exception of type " + e.GetType().ToString() + _ "was encountered while inserting the data.") Console.WriteLine("Neither record was written to database.") Finally myConnection.Close() End Try End Sub
C# 例 :
public void RunTransaction(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MySqlCommand myCommand = myConnection.CreateCommand(); MySqlTransaction myTrans; // Start a local transaction myTrans = myConnection.BeginTransaction(); // Must assign both transaction object and connection // to Command object for a pending local transaction myCommand.Connection = myConnection; myCommand.Transaction = myTrans; try { myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')"; myCommand.ExecuteNonQuery(); myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')"; myCommand.ExecuteNonQuery(); myTrans.Commit(); Console.WriteLine("Both records are written to database."); } catch(Exception e) { try { myTrans.Rollback(); } catch (SqlException ex) { if (myTrans.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() + " was encountered while attempting to roll back the transaction."); } } Console.WriteLine("An exception of type " + e.GetType() + " was encountered while inserting the data."); Console.WriteLine("Neither record was written to database."); } finally { myConnection.Close(); } }
隔離レベルを指定して、データベース トランザクションを開始します。
パラメータ : トランザクションを実行する分離レベル。
戻り値 : 新しいトランザクションを表すオブジェクト。
例外 : 並列トランザクションはサポートされていません。
このコマンドは、MySQL BEGIN TRANSACTION コマンドに相当します。
トランザクションは、MySqlTransaction.Commit
または MySqlTransaction.Rollback
メソッドを使用して、明示的にコミットするかロールバックする必要があります。
隔離レベルを指定しない場合、デフォルトの隔離レベルが使用されます。BeginTransaction
メソッドで隔離レベルを指定するには、iso
パラメータを受け取るオーバーロードを使用します。
例
次は、MySqlConnection
と
MySqlTransaction
を作成する例です。BeginTransaction
、MySqlTransaction.Commit
、MySqlTransaction.Rollback
の各メソッドの使い方も示します。
Visual Basic 例 :
Public Sub RunTransaction(myConnString As String) Dim myConnection As New MySqlConnection(myConnString) myConnection.Open() Dim myCommand As MySqlCommand = myConnection.CreateCommand() Dim myTrans As MySqlTransaction ' Start a local transaction myTrans = myConnection.BeginTransaction() ' Must assign both transaction object and connection ' to Command object for a pending local transaction myCommand.Connection = myConnection myCommand.Transaction = myTrans Try myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')" myCommand.ExecuteNonQuery() myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')" myCommand.ExecuteNonQuery() myTrans.Commit() Console.WriteLine("Both records are written to database.") Catch e As Exception Try myTrans.Rollback() Catch ex As MySqlException If Not myTrans.Connection Is Nothing Then Console.WriteLine("An exception of type " + ex.GetType().ToString() + _ " was encountered while attempting to roll back the transaction.") End If End Try Console.WriteLine("An exception of type " + e.GetType().ToString() + _ "was encountered while inserting the data.") Console.WriteLine("Neither record was written to database.") Finally myConnection.Close() End Try End Sub
C# 例 :
public void RunTransaction(string myConnString) { MySqlConnection myConnection = new MySqlConnection(myConnString); myConnection.Open(); MySqlCommand myCommand = myConnection.CreateCommand(); MySqlTransaction myTrans; // Start a local transaction myTrans = myConnection.BeginTransaction(); // Must assign both transaction object and connection // to Command object for a pending local transaction myCommand.Connection = myConnection; myCommand.Transaction = myTrans; try { myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')"; myCommand.ExecuteNonQuery(); myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')"; myCommand.ExecuteNonQuery(); myTrans.Commit(); Console.WriteLine("Both records are written to database."); } catch(Exception e) { try { myTrans.Rollback(); } catch (SqlException ex) { if (myTrans.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() + " was encountered while attempting to roll back the transaction."); } } Console.WriteLine("An exception of type " + e.GetType() + " was encountered while inserting the data."); Console.WriteLine("Neither record was written to database."); } finally { myConnection.Close(); } }
開いているMySqlConnection の現在のデータベースを変更します。
パラメータ : 使用するデータベースの名前。
database
パラメータで提供される値は、有効なデータベース名である必要があります。
database
パラメータは、null
値、空のストリング、または空白文字だけの文字列にはできません。
MySQL に対して接続プールを使用する場合、接続を閉じると、その接続は接続プールに返されます。次回、プールから接続を取り出した時に、接続のリセット要求が、ユーザーが操作を行う前に実行されます。
例外 : データベース名が有効ではありません。
例外 : 接続が開いていません。
例外 : データベースを変更できません。
例
以下の例は MySqlConnection
を作成し、その読み取り専用プロパティの一部を表示します。
Visual Basic 例 :
Public Sub CreateMySqlConnection() Dim myConnString As String = _ "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass" Dim myConnection As New MySqlConnection( myConnString ) myConnection.Open() MessageBox.Show( "Server Version: " + myConnection.ServerVersion _ + ControlChars.NewLine + "Database: " + myConnection.Database ) myConnection.ChangeDatabase( "test2" ) MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _ + ControlChars.NewLine + "Database: " + myConnection.Database ) myConnection.Close() End Sub
C# 例 :
public void CreateMySqlConnection() { string myConnString = "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"; MySqlConnection myConnection = new MySqlConnection( myConnString ); myConnection.Open(); MessageBox.Show( "Server Version: " + myConnection.ServerVersion + "\nDatabase: " + myConnection.Database ); myConnection.ChangeDatabase( "test2" ); MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion + "\nDatabase: " + myConnection.Database ); myConnection.Close(); }
接続の状態が変更した時に発生します。
State
が closed から opend
に、または opend から closed
に変わるたびに、StateChange
イベントが発生します。StateChange
は MySqlConnection
トランザクションの直後に実行します。
StateChange
イベント内でイベント
ハンドラが例外を投入すると、その例外は、
Open
メソッドまたは
Close
メソッドの呼び出し元に通知されます。
StateChange
イベントは、Close
または
Dispose
を明示的に呼び出さない限り発生しません。
イベント
ハンドラは、このイベントに関連するデータを含む
System.Data.StateChangeEventArgs
タイプの引数を受け取ります。次の
StateChangeEventArgs
プロパティは、このイベントの固有の情報を提供します。
プロパティ | 解説 |
System.Data.StateChangeEventArgs.CurrentState |
接続の新しい状態を取得します。イベントが発生した時には、接続オブジェクトが既に新しい状態になっています。 |
System.Data.StateChangeEventArgs.OriginalState |
接続の元の状態を取得します。 |
接続の確立の試行を開始してから、その試行を終了してエラーを生成するまでの待機時間を取得または設定します。
例外 : 設定値が O 未満。
0
の値は限界がないことを示し、MySqlConnection.ConnectionString
では接続の試行が永久に待機するため、避けるべきでしょう。
例
以下の例は MySqlConnection を作成し、そのプロパティの一部を接続ストリングに設定します。
Visual Basic 例 :
Public Sub CreateSqlConnection() Dim myConnection As New MySqlConnection() myConnection.ConnectionString = "Persist Security Info=False;Username=user;Password=pass;database=test1;server=localhost;Connect Timeout=30" myConnection.Open() End Sub
C# 例 :
public void CreateSqlConnection() { MySqlConnection myConnection = new MySqlConnection(); myConnection.ConnectionString = "Persist Security Info=False;Username=user;» Password=pass;database=test1;server=localhost;Connect Timeout=30"; myConnection.Open(); }
MySQL Server データベースへの接続に使用されるストリングを取得または設定します。
戻った ConnectionString
は元々設定されたものとやや異なるかもしれませんが、キーワード/値のペアの点では同じになります。セキュリティ情報は、Persist
Security Info 値が true
に設定されない限り含まれません。
ConnectionString
プロパティを使用して、データベースに接続することができます。次の例は一般的な接続ストリングを示したものです。
"Persist Security Info=False;database=MyDB;» server=MySqlServer;user id=myUser;Password=myPass"
ConnectionString
プロパティを設定できるのは、接続が閉じている時だけです。接続ストリング値の多くには、対応する読み取り専用プロパティがあります。接続ストリングを設定すると、エラーが検出された場合を除いて、これらのプロパティがすべて更新されます。エラーが発生した場合は、いずれのプロパティも更新されません。MySqlConnection
プロパティは、ConnectionString
に含まれている設定だけを返します。
ローカル コンピュータに接続するには、サーバとして "localhost" を指定します。サーバを指定しないと、localhost がとられます。
閉じた接続に対して
ConnectionString
をリセットすると、パスワードを含むすべての接続ストリング値
( および関連プロパティ )
がリセットされます。例えば、Database= MyDb
を含む接続ストリングを設定した後で、その接続ストリングを
Data Source=myserver;User Id=myUser;Password=myPass
にリセットすると、
MySqlConnection.Database
プロパティは
MyDb に設定されなくなります。
接続ストリングは、設定した直後に解析されます。解析中にシンタックスのエラーが検出された場合は、ArgumentException
などの、ランタイム例外が生成されます。その他のエラーは、接続を開くときにだけ検出されます。
接続ストリングの基本的なフォーマットは、一連のキーワード/値のペアをセミコロンで区切った形となります。等号記号
( =
)
は、各キーワードとその値を結合します。オプションの設定値に関する追記は以下
:
セミコロン、単一引用符文字または二十引用符文字を含む値を指定するには、値を二十引用符で囲む必要があります。セミコロンと二重引用符の両方が値に含まれている場合は、単一引用符で値を囲むことができます。単一引用符は、値が二重引用符文字で始まる場合にも使用できます。逆に、値が単一引用符で始まる場合は、二重引用符を使用することができます。単一引用符と二重引用符の両方が値に含まれている場合、値を囲むために使用される引用符文字は、値の中で発生するたびに 2 つずつ使用する必要があります。
ストリング値の前端または末尾の空白を含めるには、単一引用符または二重引用符で値を囲む必要があります。整数値、ブール変数、列挙値の先頭または末尾の空白は、引用符に囲まれていても無視されます。ただし、ストリング リテラル キーワードやストリング値内の空白は保存されます。.NET Framework Version 1.1 を使用の場合、単一引用符または二重引用符は、引用符が値の先頭または末尾の文字でない限り、区切り文字を付けずに使用できます ( たとえば、Data Source= my'Server または DData Source= my"Server ) 。
キーワードまたは値の中で等号記号 (=) を使用する場合は、先に等号記号をもうひとつ入れる必要があります。例えば、次のような接続ストリングでは、
"key==word=value"
"key=word" で値は "value" です。
キーワード = 値のペアで特定のキーワードが接続ストリングの中に複数回発生する場合、最後に発生するものが値セットで使用されます。
キーワードの大文字と小文字は区別されません。
次の表は、ConnectionString
内のキーワード値として有効な名前の一覧です。
名前 | デフォルト | 解説 |
Connect Timeout , Connection
Timeout
|
15 | 接続の試行を終了し、エラーを生成するまで、サーバへの接続を待機する時間 (秒単位)。 |
Host , Server , Data
Source , DataSource ,
Address , Addr ,
Network Address
|
localhost | 接続する SQL Server のインスタンスの名前またはネットワーク アドレス。複数のホストを、& で区切って指定することができます。この方法は、複数の MySQL サーバが複製のために構成されており、接続するサーバの正確性を特に求めていない場合にも利用できます。データベースへの書き込みを同期するために、プロバイダは試行しないので、このオプションを使用する際は注意が必要になります。Mono を使用した Unix 環境においては、これは MySQL ソケット ファイル名への完全修飾パスになりえます。この構成では、Unix ソケットが TCP/IP ソケットの代わりに使用されます。現時点ではシングル ソケット名のみしか与えられないので、複製された環境で Unix ソケットを使用して MySQL にアクセスすることは現在サポートされていません。 |
Ignore Prepare |
true | true の場合、MySqlCommand.Prepare()
へのすべての呼び出しを無視するようプロバイダに指示します。このオプションは、サーバ側のプリペアド
ステートメントと使用する時、ステートメントの破損をともなう発行を防ぐためのものです。サーバ側のプリペアド
ステートメントを使用したい場合は、このオプションを
false
に設定してください。このオプションは、Connector/NET
5.0.3 および Connector/NET 1.0.9
に加えられています。 |
Port |
3306 | MySQL が接続の監視に使用するポート。この値を -1 に指定して名前付きパイプ接続 ( Windows のみ ) を使用します。Unix ソケットが使用されている場合、この値は無視されます。 |
Protocol |
socket | サーバへ繋げる接続のタイプを指定。値は : MySQL 共有メモリを使用する、Unix ソケット接続メモリの名前付きパイプ コネクション unix のソケット接続パイプのソケットまたは tcp 。 |
CharSet , Character Set
|
サーバに送られたすべてのクエリのエンコードに使用されるべき文字セットを指定。結果セットはいつもと同じく、戻されたデータの文字セットに返されます。 | |
Logging |
false | true の場合は、各種情報が構成されたどの TraceListeners にもアウトプットされます。 |
Allow Batch |
true | true の場合は、複数の SQL 文を一度のコマンド実行で送信できます。注 : MySQL 4.1.1 からは、バッチ文をサーバ定義分離文字で分ける必要があります。それ以前のバージョンの MySQL に送られたコマンドは、 ';' で分けてください。 |
Encrypt |
false | Connector/NET 5.0.3 以降では、true
の場合は、サーバーに証明書がインストールされていれば、クライアントとサーバの間で送信されるすべてのデータに
SSL
暗号化を使用します。認識される値は、true
、false 、yes
、および no です。5.0.3
より前のバージョンでは、このオプションは効果がありません。 |
Initial Catalog , Database
|
mysql | 最初に使用するデータベース名。 |
Password , pwd
|
使用されているMySQL アカウントのパスワード。 | |
Persist Security Info |
false |
false または no ( 強く推奨
)
に設定する時、パスワードのようなセキュリティにかかわる情報は、コネクションが開いている場合、またはオープン状態にあった場合は、接続の一部としては戻されません。接続ストリングをリセットすると、パスワードを含むすべてのストリング値がリセットされます。認識される値は、true
、false 、yes
、および no です。 |
User Id , Username ,
Uid , User name
|
使用されている MySQL ログイン アカウント。 | |
Shared Memory Name |
MYSQL | 接続プロトコルがメモリに設定される場合に、通信に使用する共有メモリ オブジェクトの名前。 |
Allow Zero Datetime |
false | True では、MySqlDataReader.GetValue()
が、不正値を持つデータや日付時刻カラムに対して
MySqlDateTime を戻します。False は
System.DateTime
オブジェクトが不正値に返され、不正値に例外が投入されます。 |
Convert Zero Datetime |
false | True では、MySqlDataReader.GetValue() および
MySqlDataReader.GetDateTime()
が、不正値を持つデータまたは日付時刻カラムに対して
DateTime.MinValue を戻します。 |
Old Syntax , OldSyntax
|
false | '@' シンボルをパラメータ
マーカとして使用できます。詳細は
MySqlCommand
を参照。これは、互換性のためのみに使用されます。すべての将来コードは、新しい
'?' パラメータ
マーカを使用するように書かれる必要があります。 |
Pipe Name , Pipe
|
mysql | 名前付きパイプの名前に設定される場合、MySqlConnection
はその名前付きパイプ上で MySQL
への接続を試行します。この設定は
Windows
のプラットフォームのみに適用します。 |
Procedure Cache |
25 | ストアド プロシージャ キャッシュのサイズを設定します。デフォルトでは、Connector/NET が、最後に使用された約 25 のストアド プロシージャのメタデータ ( インプット/アウトプット データ型 ) を保存します。ストアド プロシージャ キャッシュを無効にするには、値をゼロ (0) に設定します。このオプションは、Connector/NET 5.0.2 および Connector/NET 1.0.9 に加えられています。 |
Use Procedure Bodies |
true | このオプションを false
に設定すると、データベースに接続するユーザが、mysql.proc
( ストアド プロシージャ )
テーブルに対する SELECT
権限を持たないということになります。false
に設定する時、Connector/NET
はプロシージャが呼び出される際に、この情報に頼りません。Connector/NET
はこの情報を定義することができないので、すべてのパラメータのタイプを呼び出しの前に明示的に設定し、パラメータをプロシージャ定義に現れる順にコマンドに加える必要があります。このオプションは、Connector/NET
5.0.4 および Connector/NET 1.0.10
に加えられています。 |
次の表は、ConnectionString
内のプーリング値として有効な名前の一覧です。接続プールの詳細は、MySQL
Data Provider の接続プールをご覧ください。
名前 | デフォルト | 解説 |
Connection Lifetime |
0 | 接続がプールに戻された時、その作成時が現時刻と比べられ、時間間隔
( 秒単位 ) が Connection
Lifetime
で指定された値を越えている場合は、接続が破棄されます。これは、クラスター構成で、起動中のサーバとオンラインに上がったばかりのサーバの間で、ロードのバランスを取るのにも使用できます。値をゼロ
(0)
にすると、プールされた接続の接続タイムアウトが最長になります。 |
Max Pool Size |
100 | プールできる接続の最大数。 |
Min Pool Size |
0 | プールできる接続の最小数。 |
Pooling |
true |
true の場合、MySqlConnection
オブジェクトが適切なプールから引き出されます。または必要に応じて作成され、適切なプールに追加されます。認識される値は、true
、false 、yes
、および no です。 |
Reset Pooled Connections ,
ResetConnections ,
ResetPooledConnections
|
true | ping とリセットが、プールされた接続が戻る前にサーバに送信されるべきか特定します。リセットによって接続がより速く開くことはなく、また一時テーブルなどのセッション アイテムが消去されることもありません。 |
Cache Server Configuration ,
CacheServerConfiguration ,
CacheServerConfig
|
false | サーバ変数が、プールされた接続が戻る時に更新されるべきか特定します。これを構成すると、接続がより速く開きますが、同時に他の接続によるサーバの変更を捉えられなくなります。 |
ブール変数を必要とするキーワードまたは接続プーリング値を設定する時、'true' の代わりに 'yes' 、'false' の代わりに 'no' を使用することができます。
注記
MySQL Data Provider は、MySQL
との通信にネイティブ ソケット
プロトコルを使用します。したがって、MySQL
に接続する際、ODBC
レイヤーを追加しないため、ODBC
データソース名 (DSN)
の使用はサポートしていません。
注意
このリリースでは、ユーザの入力をもとに接続ストリングを構築している時、アプリケーションには注意が必要です
( 例えば、ユーザ ID
とパスワード情報をダイアログ
ボックスから引き出す時や、接続ストリングに追加する時など
)
。アプリケーションは、ユーザがこれらの値に余分の接続ストリング
パラメータを埋め込まないようにする必要があります
(
例えば、他のデータベースを付加しようとする場合、"validpassword;database=somedb"
のようなパスワードを入力する ) 。
例
以下の例は MySqlConnection
を作成し、そのプロパティの一部を設定します。
Visual Basic 例 :
Public Sub CreateConnection() Dim myConnection As New MySqlConnection() myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass" myConnection.Open() End Sub 'CreateConnection
C# 例 :
public void CreateConnection() { MySqlConnection myConnection = new MySqlConnection(); myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass"; myConnection.Open(); }
例
次は、MySqlConnection
を Mono
をインストールした Unix
環境で作成する例です。この例では、MySQL
ソケット ファイル名は
"/var/lib/mysql/mysql.sock"
です。実際のファイル名は、それぞれの MySQL
構成によって違います。
Visual Basic 例 :
Public Sub CreateConnection() Dim myConnection As New MySqlConnection() myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass" myConnection.Open() End Sub 'CreateConnection
C# 例 :
public void CreateConnection() { MySqlConnection myConnection = new MySqlConnection(); myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass"; myConnection.Open(); }