私はすでにを使用してを使用してDBCommandをラップすると、以下のado.netコードを持っています。下の接続を明示的に閉じる必要がありますか?dbCommand.Close()も接続を閉じますか?
おかげで、
public static void ExecuteSQL(int Id)
{
Database db;
const string sqlCommand = "Stored Procedure Name";
try
{
db = DatabaseFactory.CreateDatabase();
using (DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand))
{
db.AddInParameter(dbCommand, "p_Id", DbType.Int32, Id);
db.ExecuteNonQuery(dbCommand);
**//do I have to close connection explicitely here??**
if (dbCommand.Connection.State != ConnectionState.Closed)
{
dbCommand.Connection.Close();
}
dbCommand.Connection.Dispose();
}
}
catch (Exception ex)
{
Logger.Log.Error(ex.StackTrace, ex);
throw;
}
}
@Satyaはこの場合正しいと思いますが、あなたの答えは実際には間違っています。 – Coops
@CodeBlend:誰かがエンタープライズライブラリを使用している場合、はい、その答えは正しいです。しかし、コードは 'Database'のようなクラスを参照しますが、質問の内容とタグはEntLibを参照しません。結果として、質問されたときに質問に対する回答を人々が探している場合、これはまだ正しいでしょう。 –