C# 使用OleDbDataReader检索值
让我们认为我的sql查询是C# 使用OleDbDataReader检索值,c#,sql,oledbdatareader,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()) {
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();
}
但是问题就在这里,join在那里,所以如果我给上面这样的列名,它会给我一个异常,我不能使用索引,或者我不能更改sql查询。那么有什么方法可以使用列名检索数据吗?您尝试过使用
while (dataReader.Read()) {
string str= dataReader["custid"].ToString();
}
你有没有试过用它
while (dataReader.Read()) {
string str= dataReader["custid"].ToString();
}
我想你想要的是
string str = dataReader.GetInt32(0).ToString();
其中(0)表示查询中列的从零开始的顺序位置我想您想要的是
string str = dataReader.GetInt32(0).ToString();
其中(0)表示查询中列的从零开始的顺序位置如果您不知道查询将返回什么,则必须: 获取FieldCount(结果集中的列数),然后在检索数据的DataReader的每一行中循环字段(列) 您将需要以下一种或多种方法:
- GetFieldType(int)-返回列的类型李>
- GetDataTypeName(int)-返回后端数据库的名称 列类型李>
- GetName(int)-返回列名
- GetFieldType(int)-返回列的类型李>
- GetDataTypeName(int)-返回后端数据库的名称 列类型李>
- GetName(int)-返回列名