您更喜欢以下两个代码段中的哪一个?为什么?在任何情况下,对方更可取吗?你能进一步改进吗?
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,它更简洁。似乎方法ii在任何情况下都不是优选的。
我需要有关方法i的进一步改进的建议,我们非常感谢您的想法。
答案 0 :(得分:1)
您列出的两种方法99%相同。符号差异是品味问题
两者仍然需要转换为int
。
我更喜欢跳过DataSet并使用Command.ExecuteScalar()
答案 1 :(得分:0)
鉴于代码,我会说方法2更好,因为你必须在尝试访问之前检查所有内容。
如果数据集为NULL会怎么样?方法1将出错。
如果数据集中没有表格怎么办?方法1将再次出错。
如果有桌子但没有排怎么办?方法1将再次出错。