基于ADO.NET的数据访问方法改进
本文关键字:方法 访问 数据 ADO NET 基于 | 更新日期: 2023-09-27 18:10:13
您更喜欢下面两个代码段中的哪一个?为什么?在某些情况下,另一个会更好吗?你能再改进一下吗?
i.
private int GetSize(string deptName)
{
QueryHelper dqh = new QueryHelper();
return dqh.GetDataSet("sp_GetDeptSize",deptName).Tables[0].Rows[0]["Size"];
}
ii.
private int GetSize(string deptName)
{
QueryHelper dqh = new QueryHelper();
DataSet ds = dqh.GetDataSet("sp_GetDeptSize", deptName);
DataTable dt = ds.Tables[0];
DataRow dr = dt.Rows[0];
int size = dr["Size"];
return size;
}
请注意QueryHelper是自定义类型。
我的回答是:我更喜欢方法I,它更简洁。似乎方法二在任何情况下都不是可取的。
我需要进一步改进方法I的建议,非常感谢。
您列出的两个方法99%相同。符号的不同是一个品味问题。
两者都需要转换到int
。
我宁愿跳过数据集而使用Command.ExecuteScalar()
给定代码,我会说方法2更好,因为您必须在尝试访问之前检查所有内容
如果数据集是NULL怎么办?方法1将出错。
如果数据集中没有表怎么办?方法1也会出错。
如果有一个表但没有行怎么办?方法1也会出错