从甲骨文读取时出现问题
本文关键字:问题 甲骨文 读取 | 更新日期: 2023-09-27 18:33:16
我刚刚安装了一个 Oracle 快速数据库,并尝试从我放入其中的表中读取一些数据:
using (OracleConnection conn = new OracleConnection("Data Source=localhost:1521/xe;Persist Security Info=True;User ID=SYSTEM;Password=SYSTEMPASSWORD"))
{
OracleCommand command = new OracleCommand("SELECT * FROM Persons WHERE Firstname = 'John'", conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
string strResult = reader.GetString(0);
}
}
catch (OracleException oex)
{
MessageBox.Show(oex.Message, "Oracle error");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
finally
{
reader.Close();
}
}
在while (reader.Read())
它只是退出,因为读取器不保存任何数据。怎么了? Connectionstring
?我在与 Oracle Express 一起安装的命令提示符工具中运行了相同的SELECT
,并且工作正常。
当连接到任何系统时要做的第一件事是查看/测试它是否成功,然后继续。如果没有这些简单的测试,您的应用程序必然会像定时炸弹一样运行。一些防御性编程将使你的项目更容易调试。不是您正在寻找的答案,但当前连接状态在查询执行时不清楚。
表 People 是否在系统架构中?运行另一个查询,例如"从user_objects中选择object_name",并向我们提供您已完成操作的更新。
我已经很久没有将 Oracle 与 .Net 一起使用了,但我看不到您使用哪个数据库(是"xe"吗?对于 SQL Server,我在连接字符串中使用初始目录指定它。在这里,您可以尝试不同的连接字符串:http://www.connectionstrings.com/oracle。我也会从打开连接开始。
派对有点晚了,但是...
我在访问视图时遇到了同样的问题,结果发现没有授予适当的权限。一旦我向我的用户 ID 授予了 SELECT 权限,我就可以获取我的数据。