簡體   English   中英

從.net逐行更新db2中的表

[英]update a table in db2 row by row from .net

我在C#項目中逐行從db2數據庫檢索的表上執行一些操作。 但是,當我嘗試使用以下語句使用游標將游標逐行更新到數據庫時,會生成異常:

selectCommand.CommandText = "DECLARE crsr1 CURSOR FOR select * from " + tableName+" ;" 

據我了解,.net語言不支持使用db2的游標語句。 我使用IBM DB2 ODBC驅動程序連接到數據庫。

是否有任何方法可以使用游標,或者是否有人可以告訴我這里是否缺少某些內容。

我在網上做了很多搜索,但是在這個問題上沒有多少可用。

這是我在上述聲明中得到的例外-

"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"

任何幫助或建議都將受到高度贊賞。

我認為您可能希望將其放入proc-通常不會在存儲的proc之外執行“聲明游標..” {除非您在CLI或其他工具中進行調試}

您應該只將“ SELECT”部分放在命令文本中,並使用DB2Command的ExecuteResultSet方法返回包含可滾動可更新游標的結果集。

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");
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM