[英]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.