我有个DataRow变量 currentRow,一个SqlDataReader变量 myReader;
下面的语句currentRow=(DataRow)myReader.GetValues();能否成功?
不成的话,应该如何做呢?

解决方案 »

  1.   

    SqlDataReader myReader;
        myReader = myCommand.ExecuteReader();
            while (myReader.Read()) {
           Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
        }
    不同类型使用没同的关键字:
    整型:GetInt32()
    字符:GetString()
      

  2.   

    使用 SqlDataAdapter 对象,把数据填充到一个 DataSet,然后通过 DataSet 来获取一个 DataRow 对象
      

  3.   

    简单方法
    DataTable dt = new DataTable();
    DataTable sct = rdr.GetSchemaTable();
    for( int i=0 ; i<sct.Rows.Count ; i++ )
    {
    dt.Columns.Add( sct.Rows[i]["ColumnName"].ToString() );
    }
    object[] values = new object[rdr.FieldCount];
    if( rdr.Read() )
    {
    rdr.GetValues( values );

    DataRow dr = dt.NewRow();
    dr.ItemArray = values;
    dt.Rows.Add( dr );
    }