oracle c#-执行成功,却无法更新到数据库

问题描述

执行成功,却无法更新到数据库

string ConnectionString = "Data Source=DI01;user=abc;password=abc;";//写连接串
OracleConnection conn = new OracleConnection(ConnectionString);//创建一个新连接
try
{
conn.Open();

            //OracleCommand cmd = conn.CreateCommand();
            OracleDataAdapter sd = new OracleDataAdapter();
            sd.SelectCommand = new OracleCommand(@"select pubnum,file_bibname,file_absname,file_absimgname,file_desname,file_claname,file_draname,pubkind from  table t  where 1=2  ",conn);

            sd.UpdateCommand = new OracleCommand(@"update table
                                                   set file_bibname = @file_bibname,
                                                   file_absname = @file_absname
                                                   file_absimgname = @file_absimgname,
                                                   file_desname = @file_desname,
                                                   file_claname = @file_claname,
                                                   file_draname = @file_draname
                                                   where pubnum = @pubnum
                                                     and pubkind = @pubkind", conn);
            sd.UpdateCommand.Parameters.Add("@file_bibname", OracleType.VarChar, 255, "file_bibname");
            sd.UpdateCommand.Parameters.Add("@file_absname", OracleType.VarChar, 255, "file_absname");
            sd.UpdateCommand.Parameters.Add("@file_absimgname", OracleType.VarChar, 255, "file_absimgname");
            sd.UpdateCommand.Parameters.Add("@file_desname", OracleType.VarChar, 255, "file_desname");
            sd.UpdateCommand.Parameters.Add("@file_claname", OracleType.VarChar, 255, "file_claname");
            sd.UpdateCommand.Parameters.Add("@file_draname", OracleType.VarChar, 255, "file_draname");
            sd.UpdateCommand.Parameters.Add("@pubnum", OracleType.VarChar, 13, "pubnum");
            sd.UpdateCommand.Parameters.Add("@pubkind", OracleType.VarChar, 2, "pubkind");
            sd.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
            sd.UpdateBatchSize = 0;

            DataSet dataset = new DataSet();
            sd.Fill(dataset);
            //for(int i=0;i<300;i++)
            //{
                    //row = {填入初始化的值};
                    //dataset.Tables[0].Rows.Add(row);
            //}
            object[] row = {
                            @"100534271",
                            @"CN00W.XML",
                            @"CN00I.XML",
                            @"0610060750.TIF",
                            @"N00B.XML",
                            @"6CN00A.XML",
                            @"N00C.XML",
                            "C"
                         };
            //for(int i=0;i<300;i++)
            //{
                //dataset.Tables[0].Rows[i][x] = "xxxxxxx";
            //}
            dataset.Tables[0].Rows.Add(row);
            dataset.AcceptChanges();
            sd.Update(dataset.Tables[0]);
            //dataset.Tables[0].Clear();
            sd.Dispose();
            dataset.Dispose();
        }
        catch (Exception ee)
        {
            Console.Write(ee.Message); //如果有错误,输出错误信息
        }
        finally
        {
            conn.Close(); //关闭连接
        }

?

解决方案

操作Oracle要使用事务的,最后要commit才行。

时间: 2024-11-29 11:37:55

oracle c#-执行成功,却无法更新到数据库的相关文章

开发者论坛一周精粹(第十五期):Oracle发布多个Java漏洞更新-2017年7月

第十五期(2017年7月17日-2017年7月23日 ) 2017年7月18日,Oracle官方发布了2017年7月份的安全公告,安全公告中报告了多个漏洞,远程用户可以访问和修改目标系统上的数据,或可以在目标系统上获得提升的权限,或导致目标系统上的拒绝服务,涉及到的安全漏洞较多,安全风险较高. [漏洞公告]Oracle发布多个Java漏洞更新-2017年7月 https://bbs.aliyun.com/read/322152.html 您的MySQL数据在裸奔中吗?来不及了,快上车 https

java中前台可以修改数据成功,但是数据却不能更新到数据库中。

问题描述 java中前台可以修改数据成功,但是数据却不能更新到数据库中. 在前台修改了数据成功后,可是数据库的数据却没有更新,还是以前的数据. <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforg

java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因?

问题描述 java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因? /** * 获取书籍总点击量 * * @param bookid 书籍id * @return 书籍总点击量 * @throws Exception */ @Override public int getClickAllById(int bookid) throws Exception { ResultSet rs = null; DataParameter[] parameters = new DataParame

Oracle批量执行sql语句之禁用所有表的外键_oracle

在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name

Spark修炼之道(高级篇)——Spark源码阅读:第九节 Task执行成功时的结果处理

Task执行成功时的结果处理 在上一节中,给出了Task在Executor上的运行代码演示,我们知道代码的最终运行通过的是TaskRunner方法 class TaskRunner( execBackend: ExecutorBackend, val taskId: Long, val attemptNumber: Int, taskName: String, serializedTask: ByteBuffer) extends Runnable { //其它无关代码省略 //向Driver端

电脑执行释放DNS和更新IP的命令是什么?

  电脑执行释放DNS和更新IP的命令是什么? 1.按Win+R打开运行,输入cmd并回车; 2.打开命令提示符后,输入命令:ipconfig /flushdns,点击回车即可将本机的DNS缓存清空; 3.输入命令:ipconfig /release,并按回车键执行,释放本机IP地址; 4.输入命令:ipconfig /renew,按回车键即可获得一个新的IP地址; 5.新建一个文本文档并打开,输入: ipconfig /flushdns ipconfig /release ipconfig /

delphi HttpQueryInfo查询响应头信息,执行成功,但是返回的是空字符串

问题描述 delphi HttpQueryInfo查询响应头信息,执行成功,但是返回的是空字符串 procedure Get(url: string;res: TStream); var hInt,hUrl:HINTERNET; buffer,hBuf:PChar; dwRead:cardinal; flag:Boolean; Len,index:Cardinal; stream:TStringStream; var value: DWORD; begin GetMem(buffer, 6553

oracle执行语句过慢-ORACLE语句执行过慢,求帮助

问题描述 ORACLE语句执行过慢,求帮助 ORACLE执行语句过慢:麻烦大神指点:select 'OB1' a.customerno a.phone a.AnswerType '4947E1' a.managecom from continfo a where a.dealflag = 0 表信息:i_continfo 表数据大概280W左右,dealflag已经添加了索引执行结果:不加条件执行不到1秒,加了条件执行要30秒请问这种情况能优化么?多谢!

配置Informatica9.6.1的集成服务时不管选择哪种字符都不能执行成功,日志信息:

问题描述 配置Informatica9.6.1的集成服务时不管选择哪种字符都不能执行成功,日志信息: serviceType service severity timestamp threadName messageCode message IS ETL_I_S 0$_:_$严重错误 06/29/2015 12:20:23.920 下午 13056 LM_36011 代码页不匹配.服务进程在代码页 [MS Windows Simplified Chinese, superset of GB 23