今日、私はコンピューターの前に座って、MySql データベースに接続して使用する方法を試してみました。たくさんの質問がありますが、いくつかにとどめようと思います。
サーバーへの接続を次のステートメントで初期化すると、
sqlConnection.Open();
Is this connection now open and ready to use until i tell the server not?ステートメントは接続を閉じていないようです。
Close()
サーバーのステータスを見ると、送信後も接続が残っていることがわかります。setupConnection();
データベースからデータを取得したいとします。まず、この機能が送信する関数を実行してから、Open()
true または false を返します。次に、表示や計算などのためにデータを取得する関数がある可能性があります。この関数を呼び出すと、接続を再度開く必要がありますか?
少しまとめると、プログラムが関数と同じスコープ内にある場合にのみ、接続が開かれOpen();
ますか?
また、すべての関数でこれを宣言する必要がないようにするにはどうすればよいですか:
MySqlConnection sqlConnection; sqlConnection = 新しい MySqlConnection();
以下は、今日実行しているコードの一部です。
/// <summary>
/// InitConnection outputs the connectionstring
/// </summary>
/// <param name="Adress">Server adress</param>
/// <param name="Port">Server port</param>
/// <param name="Uid">Username</param>
/// <param name="Pwd">Password</param>
/// <param name="Database">Database</param>
/// <returns>the connectionstring</returns>
public string initConnection(string Adress, string Port,
string Uid, string Pwd, string Database)
{
return "server=" + Adress + ";port=" + Port + ";uid=" + Uid + ";" +
"pwd=" + Pwd + ";database=" + Database + ";";
}
/// <summary>
/// setuupConnection will setup an active connection to the database
/// specified in initConnection
/// </summary>
/// <param name="ConnectionString">The return value of
/// initConnection</param>
/// <returns>True or False</returns>
public bool setupConnection(string ConnectionString)
{
MySqlConnection sqlConnection;
sqlConnection = new MySqlConnection();
sqlConnection.ConnectionString = ConnectionString;
try
{
sqlConnection.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Cannot connect to server.");
break;
case 1045:
MessageBox.Show("Invalide username/password.");
break;
}
return false;
}
}
/// <summary>
/// closeConnection will terminate the database connection.
/// </summary>
/// <returns>True or False</returns>
public bool closeConnection()
{
MySqlConnection sqlConnection;
sqlConnection = new MySqlConnection();
try
{
sqlConnection.Dispose();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}