我在事务中执行了一系列插入操作,然后是提交操作。如果我在关闭连接之前用(READUNCOMMITTED)查询数据库,它会像预期的那样出现。但是,在关闭连接时,数据将消失。为什么事务没有实际提交? using (SqlConnection db = new SqlConnection(connectionstring))
{
db.Open();
SqlTransaction transaction = db.BeginTransaction("loadRate");
try
{
int id = 0;
using
当连接关闭时,是否可以在c#中检索当前的SQL事务?
sqlTransaction.Save("savePoint");
sqlConnection.Close() // im purposely closing it to test
if (sqlConnection.State == ConnectionState.Close)
{
sqlConnection.Open():
// is it possible to resume the sql transaction when I re-open
// the
我使用以下代码将单行提交到数据库表(SQL2008/ .NET 4)
using (var db = new MyDbDataContext(_dbConnectionString))
{
Action action = new Action();
db.Actions.InsertOnSubmit(dbAction);
db.SubmitChanges();
}
通常情况下,一切都很好,但偶尔我会遇到以下异常:
System.InvalidOperationException: This SqlTransaction has completed; it is no l
如果事务既未提交也未回滚,会发生什么情况。我正在为Server和/或Oracle寻找答案。请参阅以下代码:
Public Sub TransactionTest()
Try
Dim intCount As Integer
Dim sql As SqlTransaction
Dim objCon As New SqlConnection("Data Source=IANSCOMPUTER;Initial Catalog=Test;Integrated Security=True;MultipleAct
我正在尝试在DbContext下使用DbContext。我的Sql连接字符串有UserId和密码,这就是为什么要将连接对象传递给SqlBulkCopy,我正在创建具有SqlCredential的SqlConnection对象,并将SqlConnection对象传递给SqlBulkCopy。我的SqlBulkCopy初始化如下。
using (var conn = new SqlConnection("", cred))
{
using (var bulkCopy = new SqlBulkCopy("",SqlBulkCopyOptions.CheckCo
我在vb.net中开始一个事务。我在Server 2008上执行一个存储过程。该存储过程包含BEGIN TRANSACTION。它失败了,ROLLBACK in CATCH块运行..。
BEGIN CATCH
IF @@TRANCOUNT > 1 ROLLBACK
EXEC p_RethrowError
END CATCH
重抛有效地做了一个“存在的错误”。
执行传递回vb.net。执行回滚"Catch sqlException“。
问题:
为什么@@TRANCOUNT 1而不是2?(也就是说,为什么不包括begin trans in vb.net
我正在尝试测试第一个事务,如果它是成功的,那么我尝试第二个事务,如果第二个事务也是成功的,那么我将两者都提交,如果第二个事务失败,我需要回滚第一个事务。
因此,我有以下函数,它返回可以是状态之一的字典:
0(意味着事务失败但设法回滚) -> sql事务
1(意味着事务成功) -> sql事务
-1 (意味着事务失败且未能成功回滚) -> sql事务
Public Function execDBTrans_valMod(transactionName As String, ByVal emailSubject As String, ByVal emailBody As Stri
假设我在中运行了以下代码:
begin transaction
update Person set Name='Ian' where id=1
然后关闭studio管理器,并看到以下警告:
有一些未提交的事务。您想在关闭窗口之前提交这些事务吗?
如果我选择“是”,则事务将被提交。如果我选择“否”,那么它将被回滚。
如何与VB6/.NET程序一起工作?假设我有导致错误/异常的代码,事务既没有提交也没有回滚(应该是这样)。事务是否无限期地处于活动状态,还是有时间限制?事务是否已提交或回滚?
Update I编写了一个VB6程序,该程序:
1) Establishes a c
创建连接+事务:
public SQLiteTransaction BeginTransaction()
{
var con = new SQLiteConnection(@"Data Source=A:\TransactionScopeTest\TransactionTest.db;Foreign Keys=ON");
con.Open();
var trans = con.BeginTransaction();
return trans;
}
使用相同主键值的2 sqlite插入
对于已经存在于catch子句中的SqlTransaction RollBack,实现错误处理的最佳方法是什么?我的代码大致如下:
using (SqlConnection objSqlConn = new SqlConnection(connStr)) {
objSqlConn.Open();
using (SqlTransaction objSqlTrans = objSqlConn.BeginTransaction()) {
try {
// code
// more code
// and more code
}
ca
我有一个可能对SQL Server2005数据库执行数千次插入的应用程序。如果由于任何原因(外键约束、字段长度等)而导致插入失败该应用程序旨在记录插入错误并继续。
每个插入操作都独立于其他插入操作,因此数据库完整性不需要事务处理。但是,我们确实希望使用它们来提高性能。当我使用事务时,我们每100次提交中就会有1次出现以下错误。
This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.S
我正在尝试更好地理解“自动提交”的概念,当使用Postgres ( better )连接时。假设我有一个新的连接,将其隔离级别设置为ISOLATION_LEVEL_AUTOCOMMIT,然后直接运行此SQL,而不使用游标begin/rollback方法(作为练习,并不是说我真的想这样做):
INSERT A
INSERT B
BEGIN
INSERT C
INSERT D
ROLLBACK
插入C& D会发生什么?
自动提交是不是仅仅是BEGINs中的一个内部设置,它会影响问题的开始?在这种情况下,上述SQL不受影响;插入A和B在完成后立即提交,而C&D在事务中
这似乎是一个很简单的问题,但我没有找到任何明确的答案,专门针对MySQL。看看这个:
$mysqli->autocommit(false); //Start the transaction
$success = true;
/* do a bunch of inserts here, which will be rolled back and
set $success to false if they fail */
if ($success) {
if ($mysqli->commit()) {
/* display success me
我试图使用linq2SQL将CSV文件的内容插入到数据库表中。
如果插入的任何db.Transaction.Commit()失败,我希望能够回滚事务,但是当我尝试使用此代码时,我在-db.Transaction.Commit()上得到以下错误
System.InvalidOperationException未被处理:此SqlTransaction已完成;它已不再可用。
有人知道我做错了什么吗?
using (DataContext db = new DataContext())
{
db.Connection.Open();
db.Transaction = db.Connec
我有一个在事务中执行的读查询,这样我就可以指定隔离级别。查询完成后,我应该做什么?
提交事务回滚事务不做任何事情(这将导致事务在using块结束时回滚)
每种方法的含义是什么?
using (IDbConnection connection = ConnectionFactory.CreateConnection())
{
using (IDbTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted))
{
using (IDbCommand comm
我正在通过SqlBulkCopy插入数据,如下所示:
public void testBulkInsert(string connection, string table, DataTable dt)
{
using (SqlConnection con = new SqlConnection(connection))
{
con.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(con))
{
bulkCopy.DestinationTableN