在C#ASP .NET中使用列的索引或列的名称访问DataSet中单元格的值的建议性如何?

我目前正在使用.NET 4.5.2在 Webforms 中开发一个应用程序,该体系结构非常简单,只是它可以与数据访问层(DAL)通信并通过SqlConnection,SqlCommand,SqlDataAdapter等对存储过程进行了调用,我不时将DataSet返回到ASPX表单。

通过使用列索引访问单元格的值,数据集的可伸缩性如何?

我目前这样访问它们:

选项A:

string foo = dtResul.Rows[0][0].ToString();

如果要向存储过程中添加字段,则必须非常小心SELECT子句中列的顺序

但是我看到了另一种方式,就像这样:

选项B:

string foo = dtResul.Rows[0]["MyColumnName"].ToString();

因此,我不会担心索引,但是是否一样?您将使用哪一个?为什么?我一直在考虑以第二种方式进行更改,但我不知道它是否应该重要。

yk8278 回答:在C#ASP .NET中使用列的索引或列的名称访问DataSet中单元格的值的建议性如何?

这两种方法都不错,一种可能比另一种更适合您的情况,但是按列名建立索引有很多优点,我个人更喜欢这种方法。

这就是原因。

假设某人更改了存储过程,以便交换了相同类型的两列的顺序。

如果您使用的是数字索引,则所有内容都可以继续工作,但不会警告您的代码使用了错误的列数据。至少直到一切出于怪异的原因炸毁为止,这需要一段时间才能调试。

但是,在这种情况下,如果您要按列名进行访问,假设仅对列进行了重新排序而没有重命名,则然后,您的代码将继续正常运行,无论重新订购

同时,假设将列 重命名。好吧,现在您的代码将在开发过程中失败,这很重要!现在,您已经收到警报,需要在生产之前对其进行修复。

更新:关于可伸缩性,几乎可以肯定,这两种方式都不是问题。如果您的列数少于几千,那么我敢肯定,与数据库调用的开销相比,字符串查找对性能的影响可以忽略不计。但是,如果您担心的话,请进行测试。

本文链接:https://www.f2er.com/3113794.html

大家都在问