基于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的建议,非常感谢。

基于ADO.NET的数据访问方法改进

您列出的两个方法99%相同。符号的不同是一个品味问题。
两者都需要转换到int

我宁愿跳过数据集而使用Command.ExecuteScalar()

给定代码,我会说方法2更好,因为您必须在尝试访问之前检查所有内容

如果数据集是NULL怎么办?方法1将出错。

如果数据集中没有表怎么办?方法1也会出错。

如果有一个表但没有行怎么办?方法1也会出错