1

让我们认为我的 sql 查询是

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

我想使用 OleDbDataReader 来检索 this 的行。

我用这种方式

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

但问题在这里加入,所以如果我给上面的列名它抛出一个异常并且我不能使用索引或者我不能更改 sql 查询。那么有什么方法可以使用列名检索数据?

4

3 回答 3

1

您是否尝试过仅使用

while (dataReader.Read()) { 
    string str= dataReader["custid"].ToString();    
}
于 2010-08-12T11:26:43.280 回答
0

我想你想要的是...

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

其中 (0) 指的是查询中列的从零开始的顺序位置

于 2010-08-12T11:31:08.163 回答
0

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

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

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

  • GetFieldType(int) - 返回列的类型。
  • GetDataTypeName(int) - 返回后端数据库列类型的名称。
  • GetName(int) - 返回列名。
于 2013-05-28T09:38:33.793 回答