C# 从.net逐行更新db2中的表

C# 从.net逐行更新db2中的表,c#,.net-2.0,odbc,db2,C#,.net 2.0,Odbc,Db2,在C项目中,我对从db2数据库逐行检索的表执行一些操作。 但是,当我尝试使用游标使用以下语句逐行将其更新到数据库时,会生成一个异常: selectCommand.CommandText = "DECLARE crsr1 CURSOR FOR select * from " + tableName+" ;" 据我所知,在.net语言中不支持使用db2的游标语句。我使用IBMDB2ODBC驱动程序连接到数据库 是否有任何方法可以使用游标,或者是否有人可以告诉我这里是否缺少一些东西 我在网上做了很

在C项目中,我对从db2数据库逐行检索的表执行一些操作。 但是,当我尝试使用游标使用以下语句逐行将其更新到数据库时,会生成一个异常:

selectCommand.CommandText = "DECLARE crsr1 CURSOR FOR select * from " + tableName+" ;" 
据我所知,在.net语言中不支持使用db2的游标语句。我使用IBMDB2ODBC驱动程序连接到数据库

是否有任何方法可以使用游标,或者是否有人可以告诉我这里是否缺少一些东西

我在网上做了很多搜索,但在这个问题上没有多少可用的

这是我对上述声明的例外-

"ERROR [42601] [IBM][CLI Driver][DB2/NT] SQL0104N  An unexpected token \"DECLARE CRSR1 CURSOR FOR select * from MYTA\" was found following \"BEGIN-OF-STATEMENT\".  
Expected tokens may include:  \"<space>\".  SQLSTATE=42601\r\n"

非常感谢您提供的任何帮助或建议。

我认为您可能希望将其放入一个进程中-您通常不会在存储的进程之外执行“声明游标…”{除非您在CLI或其他程序中调试}

您应该将SELECT部分放在命令文本中,然后使用DB2Command方法返回一个结果集,该结果集封装了一个可滚动的可更新光标

selectCommand.CommandText = "select * from " + tableName+" ;"
using(var result = selectCommand.ExecuteResultSet(DB2ResultSetOptions.Updatable))
{
   while (result.Read())
   {
       //set value of 2nd column to 'Hello'
       result.SetString(1, "Hello");
   }
}