我有2個類。使用通用數據訪問類,我可以從存儲過程GetDepartments獲取部門。我的問題是,在目錄訪問類,特別是在公共靜態DataTable ExecuteSelectCommand(DbCommand命令)(執行命令並返回結果作爲DataTable對象)我不知道我必須寫在CATCH循環或如何離開它blank.Can任何人都可以幫我完成這部分?或者,我可以怎樣才能改變它沒有嘗試趕上。帶trycatch函數的問題
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
public static class GenericDataAccess
{
static GenericDataAccess()
{
}
public static DataTable ExecuteSelectCommand(DbCommand command)
{
DataTable table;
try
{
command.Connection.Open();
DbDataReader reader = command.ExecuteReader();
table = new DataTable();
table.Load(reader);
reader.Close();
}
catch (...)
{
......
}
finally
{
command.Connection.Close();
}
return table;
}
public static DbCommand CreateCommand()
{
string dataProviderName = BalloonShopConfiguration.DbProviderName;
string connectionString = BalloonShopConfiguration.DbConnectionString;
DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName);
DbConnection conn = factory.CreateConnection();
conn.ConnectionString = connectionString;
DbCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
return comm;
}
}
**The Catalog Access class:**
using System;
using System.Data;
using System.Data.Common;
public static class CatalogAccess
{
static CatalogAccess()
{
}
public static DataTable GetDepartments()
{
DbCommand comm = GenericDataAccess.CreateCommand();
comm.CommandText = "GetDepartments";
return GenericDataAccess.ExecuteSelectCommand(comm);
}
}
什麼如果ExecuteSelectCommand方法中發生異常,你想這麼做嗎?這將決定什麼需要進入catch塊。 – DoctorMick
讀者必須在裏面使用。 – Aristos
看起來Connection可能同樣泄漏。 – Constantin