我有以下非常简单的代码:
static void Main(string[] args)
{
using (OracleConnection conn = new OracleConnection("Data Source=tnsname;User Id=zzzz;Password=xxxx"))
{
using (OracleCommand cmd = new OracleCommand("SELECT * from CONTRACT"))
{
conn.Open();
IDataReader reader = cmd.ExecuteReader();
}
}
}
}
显然我已经更改了连接字符串,但是如果连接字符串错误,conn.Open()
调用将失败,所以我知道连接字符串是正确的,至少到目前为止数据源、用户 ID 和密码。
但是,当它到达 cmd.ExecuteReader()
调用时,我收到一个 InvalidOperationException
消息,Invalid operation。连接已关闭。
我已经用 C# 完成了很多 SQL Server 的工作,但这是我第一次使用 OracleClient。看不出有什么明显的错误,除了它已被弃用之外,但我认为它仍然可以运行。我不想编写任何生产代码,我只是想做一点一次性测试。
最佳答案
您还没有将您的连接对象与命令相关联。
cmd.Connection = conn;
或将其传递到 Command 构造函数中,例如:
using (OracleCommand cmd = new OracleCommand("SELECT * from CONTRACT", conn))
关于c# - OracleClient 说我的连接已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261223/