加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#oracle sql prepared statement [复制]

发布时间:2020-12-16 05:05:41 所属栏目:百科 来源:网络整理
导读:参见英文答案 C# equivalent to java prepared statement2个 我试图在c#中创建一个准备好的语句. 出于某种原因,我尝试的一切都以一个例子结束. *.这是我现在的代码: 我得到的例外是:“由于对象的当前状态,操作无效.” using (OracleCommand cmd = new Orac
参见英文答案 > C# equivalent to java prepared statement2个
我试图在c#中创建一个准备好的语句.

出于某种原因,我尝试的一切都以一个例子结束.

*.这是我现在的代码:

我得到的例外是:“由于对象的当前状态,操作无效.”

using (OracleCommand cmd = new OracleCommand())
    {
        cmd.Connection = conn;
        cmd.CommandType = CommandType.Text;

        cmd.CommandText = "insert into daily_cdr_logs " +
                "(message) " +
                "values " +
                "(:message)";

        cmd.Parameters.Add(:message,msg);
        //OracleDbType.Int32,postpaid_duration,ParameterDirection.Input);
        cmd.Prepare();
        cmd.ExecuteNonQuery();
    }

>我见过一些人用Parameters.AddWithValue做这件事.但由于某种原因,我无法在OracleCommand.Parameters中找到函数AddWithValue,我已经导入了Oracle.DataAccess.Client,并且使用了Visual Studio 2010,我有了oracle DataAccess refferance.

解决方法

一般规则是仅在必要时打开连接,并在完成后立即关闭/处置它.连接池是自动管理的,因此打开新连接并不是一项繁重的任务.当您打开连接,关闭它并再次打开相同的连接时,实际上并未创建新的本机连接.前一个是从连接池中获取的.默认值通常很好,所以我建议在创建连接时不要传递池内容.如果您连续执行10个命令,请打开连接,执行10个命令并关闭它.只有当他们被保证一个接一个地执行并且在做其他事情时你没有“坚持”连接时才这样做.如果您需要执行其他操作,请在执行此操作之前关闭连接.这通常会带来最佳性能.

几乎.尝试:

cmd = new command(...);
cmd.parameters.Add(...)
cmd.parameters.Add(...)

然后connection.open()//执行命令并使用结果

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读