IronPython SqlCommand 影响行,但不保存更改
IronPython SqlCommand affects rows, but doesn't save changes
我在 IronPython 中有一个更新和插入脚本,所以当我 运行 它们通过
ExecuteNonQuery()
它 returns 1 受影响的行(如预期的那样),但是当我查看数据库(或 运行 select
查询)时,没有任何变化。
def update(pConnection, transaction, serialName, serial_counter):
query = """ UPDATE [EM_DEMO].[dbo].[tblCounter]
SET [Counter] = @counter
WHERE [ChiaveTabella] = @serial_column
""";
print 'query: ', query; # DEBUG INFO
cmd = pConnection.CreateCommand();
cmd.Transaction = transaction;
cmd.CommandText = query;
cmd.Parameters.AddWithValue('@counter', serial_counter.ToString());
cmd.Parameters.AddWithValue('@serial_column', serialName);
rowsAffected = cmd.ExecuteNonQuery();
if not rowsAffected == 1:
print 'Error during update! rows affected:', rowsAffected;
return False;
else:
print 'Complete!';
return True;
但是当我 运行 来自本机 C# 的相同代码时:它运行良好!
谁能帮帮我:有什么问题吗?
忘记手动提交更改(在本机 C# 中无需提交即可工作),并抛出异常,因此有必要在每次执行后 transaction.Commit()
。
# ...
rowsAffected = cmd.ExecuteNonQuery();
transaction.Commit();
# ...
我在 IronPython 中有一个更新和插入脚本,所以当我 运行 它们通过
ExecuteNonQuery()
它 returns 1 受影响的行(如预期的那样),但是当我查看数据库(或 运行 select
查询)时,没有任何变化。
def update(pConnection, transaction, serialName, serial_counter):
query = """ UPDATE [EM_DEMO].[dbo].[tblCounter]
SET [Counter] = @counter
WHERE [ChiaveTabella] = @serial_column
""";
print 'query: ', query; # DEBUG INFO
cmd = pConnection.CreateCommand();
cmd.Transaction = transaction;
cmd.CommandText = query;
cmd.Parameters.AddWithValue('@counter', serial_counter.ToString());
cmd.Parameters.AddWithValue('@serial_column', serialName);
rowsAffected = cmd.ExecuteNonQuery();
if not rowsAffected == 1:
print 'Error during update! rows affected:', rowsAffected;
return False;
else:
print 'Complete!';
return True;
但是当我 运行 来自本机 C# 的相同代码时:它运行良好! 谁能帮帮我:有什么问题吗?
忘记手动提交更改(在本机 C# 中无需提交即可工作),并抛出异常,因此有必要在每次执行后 transaction.Commit()
。
# ...
rowsAffected = cmd.ExecuteNonQuery();
transaction.Commit();
# ...