访问 System.Data.DataTable 中的值:技巧
访问 System.Data.DataTable 中的值
我经常注意到大多数程序员使用如下所示的列索引从 datatable 中访问数据
public class TestClass
{
  public void MyTestMethod()
  {
    //GetTableData Method fetches data from database using a sql query.
    DataTable dt = DataAccessLayer.GetTableData();
    
     foreach(DataRow dRowin dt.Rows)
     {
        //Accessing data through column index
        int empId = Convert.ToInt32(dRow[0]);
     }
  }
}
在上面的例子中,如果获取数据的 SQL 查询中的列顺序发生变化,你的应用程序肯定会出错。始终通过列名访问值,如下所示   public class TestClass
    {
       private const string EMP_ID = "EmpId";
       public void MyTestMethod()
       {
           //GetData fetches data from the database using a SQL query
           DataTable dt = DataAccess.GetTableData();
           foreach (DataRow dRow in dt.Rows)
           {
              //Accessing data through column name
              int empId = Convert.ToInt32(dRow[EMP_ID]);
           }
        }
    }
即使列顺序发生变化,上面的代码也不会出错。使用常量变量在一个地方保存列名,这样即使将来列名发生变化,你只需要在一个地方修改代码。


