C# FirebirdClient:无法执行 INSERT 语句
C# FirebirdClient: Can't execute INSERT statement
我 运行 在使用 FirebirdClient 在 table 中插入一行时遇到了一些麻烦。
这是 table 架构
FILA INTEGER Nullable
NUMERO INTEGER Nullable
STATO VARCHAR(1) Nullable
UTENTE VARCHAR(10) Nullable
WEBSYNC VARCHAR(1) Nullable
我只需要填写前两列。
这是我的代码
connection.Open();
FbTransaction transaction = connection.BeginTransaction();
FbCommand command = new FbCommand("INSERT INTO TABIMPEG (FILA, NUMERO) VALUES(@row, @number)", connection, transaction);
command.Parameters.Add("@row", row);
command.Parameters.Add("@number", number);
int ok = command.ExecuteNonQuery();
connection.Close();
if (ok != 0)
return true;
return false;
Command.ExecuteNonQuery
总是 returns 一行,所以应该更新 table。但它不是,就我而言。
我做错了什么?
如果你显式启动了一个事务,那么你也需要在关闭连接之前提交它,否则它会被回滚。
要么删除显式事务,要么提交它,例如:
int ok;
using(FbTransaction transaction = connection.BeginTransaction())
{
FbCommand command = new FbCommand("INSERT INTO TABIMPEG (FILA, NUMERO) VALUES(@row, @number)", connection, transaction);
command.Parameters.Add("@row", row);
command.Parameters.Add("@number", number);
ok = command.ExecuteNonQuery();
transaction.Commit();
}
// ... rest of your code
我 运行 在使用 FirebirdClient 在 table 中插入一行时遇到了一些麻烦。
这是 table 架构
FILA INTEGER Nullable
NUMERO INTEGER Nullable
STATO VARCHAR(1) Nullable
UTENTE VARCHAR(10) Nullable
WEBSYNC VARCHAR(1) Nullable
我只需要填写前两列。
这是我的代码
connection.Open();
FbTransaction transaction = connection.BeginTransaction();
FbCommand command = new FbCommand("INSERT INTO TABIMPEG (FILA, NUMERO) VALUES(@row, @number)", connection, transaction);
command.Parameters.Add("@row", row);
command.Parameters.Add("@number", number);
int ok = command.ExecuteNonQuery();
connection.Close();
if (ok != 0)
return true;
return false;
Command.ExecuteNonQuery
总是 returns 一行,所以应该更新 table。但它不是,就我而言。
我做错了什么?
如果你显式启动了一个事务,那么你也需要在关闭连接之前提交它,否则它会被回滚。
要么删除显式事务,要么提交它,例如:
int ok;
using(FbTransaction transaction = connection.BeginTransaction())
{
FbCommand command = new FbCommand("INSERT INTO TABIMPEG (FILA, NUMERO) VALUES(@row, @number)", connection, transaction);
command.Parameters.Add("@row", row);
command.Parameters.Add("@number", number);
ok = command.ExecuteNonQuery();
transaction.Commit();
}
// ... rest of your code