当前位置:编程学习 > C#/ASP.NET >>

C#访问oracle如何提交commit?


OracleConnection conn = new OracleConnection(ConnectionString);
 DataSet ds=new DataSet();
 OracleDataAdapter oda = new OracleDataAdapter(null,conn);
 oda.SelectCommand.CommandText="select a from a@a1 union select a from a@a2 union select a from a@a3";
 oda.Fill(ds,"表名1");
 oda.SelectCommand.CommandText="select b from b@a1 union select b from b@a2 union select b from b@a3";
 oda.Fill(ds,"表名2");
 oda.SelectCommand.CommandText="select 3...";
 oda.Fill(ds,"表名3");
 oda.SelectCommand.CommandText="select 4...";
 oda.Fill(ds,"表名4");
 GridView1.DataSource = ds.Tables["表名1"];
 GridView1.DataBind();
 GridView1.DataSource = ds.Tables["表名2"];
 GridView1.DataBind();
 GridView1.DataSource = ds.Tables["表名3"];
 GridView1.DataBind();
 GridView1.DataSource = ds.Tables["表名4"];
 GridView1.DataBind();


以上有4个查询都用到多个database link(a1,a2,a3).网上有说法是如果用到dblink,即使是select 也要commit.有的是说会锁表,有的说是会open cursor too many错误,反正应该是要commit一下好。

如果是通过db link查询远程数据库的数据,默认会初始化一个事务,仍然有必要要commit.
楼上说的对,在dblink的情况下,如果没有commit,可能会造成ora-1000错误,open cursor too many.
.


现在我的问题是,我这个commit如何提交?(VS2008+oracle11g) --------------------编程问答--------------------
SqlConnection   sqlConnection   =   new   SqlConnection();   
  ...初始化连接   
  //   开启事务   
  SqlTransaction   sqlTransaction   =   sqlConnection.BeginTransaction();   
  //   将事务应用于Command   
  SqlCommand   sqlCommand   =   new   SqlCommand();   
  sqlCommand.Connection   =   sqlConnection;   
  sqlCommand.Transaction   =   sqlTransaction;     
  try   
  {   
  //   利用sqlcommand进行数据操作   
  ...   
  //   成功提交   
  sqlTransaction.Commit();   
  }   
  catch(Exception   ex)   
  {   
  //   出错回滚   
  sqlTransaction.Rollback();   
  }   



下面这句话 是开启事物的  你去查查c#事物就行了

  SqlTransaction   sqlTransaction   =   sqlConnection.BeginTransaction();   
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,