我有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