c# - OracleClient 说我的连接已关闭

标签 c# .net system.data.oracleclient

我有以下非常简单的代码:

    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/

相关文章:

c# - 解除分配对象后,.NET Core 应用进程内存不会减少

c# - 准确设置MySqlCommand参数大小

.net - 如何并行运行 linqpad 2.x 和 4.x?

c# - ORA-00911 : invalid character

c# - Azure功能与Servicebus如何不将消息标记为完成

c# - 创建新类实例时语句左右侧的说明

c# - 命名空间 'OracleClient' 中不存在类型或命名空间名称 'System.Data'

c# - 使用 TPL 的协作式多任务处理

.net - 用 Visual C# 或 Visual C++ 编写的程序需要 .NET Framework