c#vs2008web窗体应用添加事务控制实现多条语句插入
前奏
配置文件内容
<configuration>
<appSettings>
<add key="sch" value="schTEL" />
</appSettings>
<connectionStrings>
<add name="StuInfo" connectionString="Data Source=StuInfo;Persist Security Info=True;User ID=stuData;Password=StuIn#*4582;Unicode=True;Pooling=true;Min Pool Size = 1;Max Pool Size = 40;Connection Lifetime=1;Enlist=true" providerName="System.Data.OracleClient" />
</connectionStrings>
</configuration>
读取appSettings里面的值
//方法一:
string schValue = System.Configuration.ConfigurationSettings.AppSettings["sch"];(话说已过时)
//方法二:
string schValue = System.Configuration.ConfigurationManager.AppSettings["sch"];
读取connectionStrings的值
string ConnStringAppSetting = System.Configuration.ConfigurationManager.ConnectionStrings["StuInfo"].ToString();
事务控制代码正式开始
添加引用
using System.Data.OracleClient;
try{
//1.创建OracleConnection对象连接到Oracle数据库,然后打开该连接
OracleConnection myconn = new OracleConnection(ConnStringAppSetting);
myconn.Open();
//2.调用OracleConnection对象的BeginTransaction()方法创建OracleTransaction对象并启动事务
OracleTransaction myTransaction = myconn.BeginTransaction();
//3.调用OracleConnection对象的CreateCommand()方法创建OracleCommand对象,用于存储SQL语句
OracleCommand myCommand = myconn.CreateCommand();
//4.指定事务对象给myCommand
myCommand.Transaction = myTransaction;
string testSql = @"insert into student(id, name,tel)values('1','小岑','13625485625')";
string testSql2 = @"insert into teacher(id, name,level)values('5','李老师','教授')";
//5.将OracleCommand对象的CommandText属性设为向表中添加一条语句
myCommand.CommandText = testSql;
//执行语句
myCommand.ExecuteNonQuery();
myCommand.CommandText = testSql2;
myCommand.ExecuteNonQuery();
//提交事务
myTransaction.Commit();
}catch (Exception)
{
//异常则回滚事务
myCommand.Transaction.Rollback();
}
finally
{
//关闭连接
myconn.Close();
}
这是vs2008开发的老项目,使用plsql连接oracle数据库,很多东西确实都很难找得到,很多方法配置也都很繁琐,特此记录一下,也可以借鉴。
吃水不忘挖井人
参考文档:http://www.360doc.com/content/13/0117/13/10825198_260699246.shtml