使用OleDbDataReader检索值

时间:2010-08-12 11:25:12

标签: c# sql oledbdatareader

让我们认为我的SQL查询是

  select customerDetials.custid,TestTable.col1 from CustomerDetails INNER JOIN TestTable  on CustomerDetails.custid=TestTables.custid where CustomerDetails.custid>0

我想使用OleDbDataReader来检索此行。

我用这种方式

while (dataReader.Read())
{
       string str= dataReader["customerDetials.custid"].ToString();
}

但问题是这里连接是有的,所以如果我给上面的列名称它抛出一个异常,我不能使用索引或我不能更改SQL查询。所以有任何方法来检索数据使用列名?

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用

while (dataReader.Read()) { 
    string str= dataReader["custid"].ToString();    
}

答案 1 :(得分:0)

我认为你想要的是......

string str = dataReader.GetInt32(0).ToString();

其中(0)引用列的基于零的序数位置,如查询

答案 2 :(得分:0)

如果您不知道查询将返回什么,则必须:

获取FieldCount(结果集中的列数),然后遍历DataReader检索数据的每一行中的字段(列)。

您将需要以下一种或多种方法:

  • GetFieldType(int) - 返回列的类型。
  • GetDataTypeName(int) - 返回后端数据库的名称 列类型。
  • GetName(int) - 返回列名。