当我运行在SQL Developer中下面的SQL语句将返回2行:甲骨文DataReader没有返回任何行
SELECT * FROM TEST
当我运行在同一connenction下面的代码中,datareader.HasRows会假:
OracleCommand cmd = new OracleCommand();
cmd.Connection = Connection;
cmd.CommandText = "SELECT * FROM TEST";
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
System.Windows.Forms.MessageBox.Show(dr.GetString(1));
}
}
else
{
System.Windows.Forms.MessageBox.Show("no found rows");
}
为什么datareader不包含任何行?
其他信息:
- 的Oracle 11g XE 64位安装。
- 安装ODAC 11.2 64位。
- 添加了对“oracle \ odp.net \ bin \ 4 \ Oracle.DataAccess.dll”的引用
- 已添加:using Oracle.DataAccess.Client;
'connection'应该打开吗? – 2014-10-20 12:43:50
您确定该表格包含任何记录吗?你有没有例外? – Rik 2014-10-20 12:45:18
尝试将“Test”表更改为“Dual”。如果'datareader.HasRows'变为'true',则“Test”为空,如果不是(即仍为'false'),则检查连接 – 2014-10-20 12:46:34