我正在尝试使用简单的“选择”查询从数据库中获取一些数据,但我没有得到任何数据。当我在 Oracle 的 Toad 编辑器中逐个字母地运行相同的查询时,我得到的数据就好了。
在 C# 中
OdbcDataReader reader = cmd.ExecuteReader(); //cmd contains the query
DataTable dtHRSinfo = new DataTable();
while (reader.Read()) // no lines to read
{
dtHRSinfo.Rows.Add(reader); // never comes to this statement!
}
编辑:我也有这种替代方法适用于我的其他查询,但不适用于这个。此方法也不会为数据表提供任何值。
dtHRSinfo.Load(cmd.ExecuteReader());
查询
select unitid,lasttimeon,lasttimeoff,currentlyon,currentcallontime, currentcallofftime
from opr.mktunit
我没有收到任何错误或异常。db reader 永远不会获取值,并且它们永远不会分配给数据表。我不知道我做错了什么。
数据库连接
public bool OpenDBConnections(string user, string pass)
{
try
{
this.Log("Connection to Database");
cnOprPrd = new OdbcConnection();
cnOprPrd.ConnectionString = @"Driver={Microsoft ODBC for Oracle};Server=OPRPRD;Uid=" + user + ";Pwd=" + pass;
cnOprPrd.Open();
//INPUT FOLDER
sqlFolder = AC2_SQL_FOLDER;
return true;
}
catch (Exception e)
{
Log(e.Message);
return false;
}
}
更新:
我通过在字符串变量中显式输入命令来解决问题,而不是使用 Streamreader 从文件中读取字符串。
该问题可能是由流式阅读器中的一些无法识别的字符序列引起的。谢谢你们的回答,伙计们。