谢谢

解决方案 »

  1.   

    SqlDataReader dr = new SqlDataReader();
    dr.GetName();//获取列名
      

  2.   

    SqlDataReader dr = new SqlDataReader();
    dr["ColumnName"] != null
      

  3.   

    从 DataReader 中获取架构信息
    当 DataReader 打开时,可以使用 GetSchemaTable 方法检索有关当前结果集的架构信息。GetSchemaTable 将返回一个填充了行和列的 DataTable 对象,这些行和列包含当前结果集的架构信息。对于结果集的每一列,DataTable 都将包含一行。架构表行的每一列都映射到在结果集中返回的列的属性,其中 ColumnName 是属性的名称,而列的值为属性的值。以下代码示例为 DataReader 写出架构信息。
    [Visual Basic]
    Dim schemaTable As DataTable = myReader.GetSchemaTable()Dim myRow As DataRow
    Dim myCol As DataColumnFor Each myRow In schemaTable.Rows
      For Each myCol In schemaTable.Columns
        Console.WriteLine(myCol.ColumnName & " = " & myRow(myCol).ToString())
      Next
      Console.WriteLine()
    Next
    [C#]
    DataTable schemaTable = myReader.GetSchemaTable();foreach (DataRow myRow in schemaTable.Rows)
    {
      foreach (DataColumn myCol in schemaTable.Columns)
        Console.WriteLine(myCol.ColumnName + " = " + myRow[myCol]);
      Console.WriteLine();
    }
      

  4.   

    dr.GetName(int index)是要索引的,
    我只是想知道DataReader中是否存在这一列场景:有很多查询获取到的DataReader
          有一个共用的方法使DataReader给实体对象赋值
          实体对象中有一个属性不一定都存在每一个查询中谢谢!
      

  5.   

    while(dr.Read())
    {
         for(int i= 0;i<dr.FieldCount;i++)
               if(dr.GetName(i) == "")
                  存在;
               else
                  不存在;
    }
      

  6.   

    try
    {
        string str=reader["字段"].ToString()
        成功
    }
    catch
    {
        失败
    }
    通过异常来判断,如果没有该字段取值时肯定出错。
      

  7.   

    to malongning(马龙) 
    使用try,开始的时候我也想过,但是try会不会占用太多的资源呢?尤其是字段比较多的时候,每一个字段都要用一个try