C# 连接 Sqlite 事务的问题
// 打开数据库
SQLiteConnection dconn = new System.Data.SQLite.SQLiteConnection();
dconn.ConnectionString = @"Data Source=D:\db.sdb";
dconn.Open();
SQLiteCommand dcmd = dconn.CreateCommand();
DbTransaction dtrans = dconn.BeginTransaction();
// 向aa表中插入一条数据
dcmd.CommandText = "insert into aa (a) values ('000001')";
dcmd.ExecuteNonQuery();
dtrans.Commit();
// 向aa表中插入第二条数据
dcmd.CommandText = "insert into aa (a) values ('000002')";
dcmd.ExecuteNonQuery();
dtrans.Commit();//这儿一个事务中两次commit可不可以,我的代码中这个地方报错
// 放弃插入第三条数据
dcmd.CommandText = "insert into aa (a) values ('opq')";
dcmd.ExecuteNonQuery();
dtrans.Rollback();//commit后还可能rollback吗?如果可以,回到哪儿呢,commit之后,还是事务的开始处
// 关闭数据库连接
dconn.Close();
两处红字就是我的问题!
我想对数据分批 commit 不行吗? 不能出现超过一个?
翻出事务的文章来看了下终于有了答案了:
事务三种运行模式:自动提交事务每条单独的语句都是一个事务。显式事务每个事务均以 BEGIN TRANSACTION 语句显式开始,以 COMMIT 或 ROLLBACK 语句显式结束。隐性事务在前一个事务完成时新事务隐式启动,但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。
这说明,commit或者rollback之后这个事务就完成了,之后不能再有任何的commit或者rollback了。
帮
相关问答:
txt 和XML 格式相应
不借助DataSet
导入读取TXT文件
然后直接写入XML(同一文件,不同数据,递增原数据没有被覆盖情况下增加数据.)
教个要点或最好是有个代码提示的
过路好汉 帮个忙撒^^
不会,帮楼主 ......
我这里有一个登陆WIFI网络的页面。由于WIFI经常断线,所以要反复地在这个网页上登陆,没法无人值守。
所以,我想做一个C#程序,放一个webbrowser控件,自动填表并自动点击提交按钮。
问题一:
基本照网上找的程序 ......
我的ajax的updatepanel控件里的面不能执行response.write,可是我需要弹出对话框,我要怎么做呢?
有没有不需要response.write弹提示框的做法呢?
另外我的页面上有一个web用户控件,然后放一个gridview在updatepa ......
以下是一段JavsScript脚本,但运行时总会产生 “Microsoft JScript 运行时错误: 'null' 为空或不是对象”异常,大家帮看一下。
<form id="form1" runat="server">
< ......
string ConStr="data source=C:\ceshi.db;verson=3;password=123456";
SQLiteConnection MyConnection = new SQLiteConnection(ConStr);
try
{ ......