读书人

服务器程序中数据访问错误导致出错的教

发布时间: 2012-08-13 13:21:53 作者: rapoo

服务器程序中数据访问异常导致出错的教训(.net c#)

一个服务器程序中有以下内容:

public DataSet GetDataSet(string sql)

{

DataSet ds = new DataSet();

try

{

OracleDataAdapter adapter = new OracleDataAdapter(sql, con);

adapter.Fill(ds);

}

catch//(Exception ex)

{

Close();

}

finally

{

Close();//关闭数据库连接

}

return ds;

}

DataSet ds=GetDataSet(str)

foreach (DataRow dr in ds.table[0].Rows)

{

...

}

服务器程序运行了一段时间后出错,经分析,以上做法有问题,当数据源出现错异常时,致使ds.table[0]为空而造成ds.table[0].Rows无法执行,所以程序出错.

解决的办法很多,最常见的是用try语句,但将以上内容改成以下内容可能是最简洁的.

public DataTable QueryToDT(string sql)

{

DataSet ds = new DataSet();

DataTable dt = new DataTable();

try

{

OracleDataAdapter adapter = new OracleDataAdapter(sql, con);

adapter.Fill(ds);

dt = ds.Tables[0];

}

catch//(Exception ex)

{

Close();

}

finally

{

Close();//关闭数据库连接

}

return dt;

}

DataTable dt= QueryToDT(str);

foreach (DataRow dr in dt.Rows)

{

...

}

现在, dt表不受数据源异常的影响,所以不会出错了.

读书人网 >C#

热点推荐