0

を提供するメソッドを実装しようとしていますがSqlConnection、どうすればよいですか?

public class DAL
{
    public bool dbCon()
    {
        string comboValue;

        try
        {
            using (SqlConnection sqlConn =
                new SqlConnection(@"Data Source =VirtualXP-64805;Initial Catalog=CTS_Demo;Integrated Security=SSPI"))
            {
                sqlConn.Open();
            }
        }
        catch (SqlException Ex)
        {
            MessageBox.Show(Ex.ToString());
        }
    }
}
4

1 に答える 1

3

メソッドは bool 値ではなく接続オブジェクトを返す必要があります。または、クラス レベルの接続変数を定義してそれを使用することもできます。

ただし、データベース接続に関しては、できるだけ遅く開き、できるだけ早く閉じます

メソッドから接続を開く代わりに、単に接続オブジェクトを返し、必要な場所で開くことができます。何かのようなもの:

public SqlConnection dbCon()
{
 return new SqlConnection(@"Data Source =VirtualXP-64805;Initial Catalog=CTS_Demo;Integrated Security=SSPI");
}

そして、あなたがそれを使用している場所:

using(SqlConnection conn = dbCon())
{
  conn.Open();
  .... your code
}

new SqlConnectionまたは、メソッドを削除して、構成から接続文字列を使用して単純に呼び出すこともできます。

編集:

メソッドから開いている接続を返したいので、次のことができますが、IMO は推奨される方法ではありません。usingDisposeステートメント内では使用しないため、接続オブジェクトごとに手動で呼び出す必要があります。

public SqlConnection dbCon()
{
 SqlConnection sqlConn;

 try
 {
   sqlConn = new SqlConnection(@"Data Source =VirtualXP-64805;Initial Catalog=CTS_Demo;Integrated Security=SSPI")

 }
 catch(SqlException)
 {
  //your exception handling details
  sqlConn = null;
 }
return sqlConn;

}
于 2013-02-06T06:14:08.733 に答える