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#