我正在尝试使用C#向db2进行批量插入。
CREATE TABLE tsdta.ftestbk1
(
NUM numeric(8,0),
TEXT varchar(30)
)
下面是我的测试代码:
using IBM.Data.DB2.iSeries;
...
using (iDB2Connection connection = new iDB2Connection("xxx"))
{
string sql = @"insert into tsdta.ftestbk1
values
(
@num,
@text
)";
connection.Open();
iDB2Command command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = sql;
command.Prepare();
command.DeriveParameters();
for (int i = 0; i < 5; i++)
{
command.Parameters.Add("@num", i);
command.Parameters.Add("@text", $"some text for {i}");
command.AddBatch();
}
int rows = command.ExecuteNonQuery();
connection.Close();
}
当我执行代码时,表中只有NULL值。
NUM | TEXT
------------
<null> |<null>
<null> |<null>
<null> |<null>
<null> |<null>
<null> |<null>
有人能告诉我我做错了什么吗?
1条答案
按热度按时间mf98qq941#
由于没有Db2示例进行双重检查,我将从内存和一些旧代码中执行此操作,但我有以下代码在我们的prodenv中运行(我已将其调整为与您的代码类似)
我们有一个类似的问题在当时,我得到了原始代码从这里...
C# - Insert Multiple Records at once to AS400