タイトル | : For文でInsertを連続的に使う方法 |
記事No | : 3945 |
投稿日 | : 2006/07/10(Mon) 08:38 |
投稿者 | : T太郎 |
Dim table As DataTable Dim row As DataRow
’トランザクション開始 Dim myOracleTransaction As OracleTransaction = _ cnn.BeginTransaction() Dim myOracleCommand As OracleCommand = _ cnn.CreateCommand()
For Each table In dataSet.Tables For Each row In table.Rows 'testint = stringSplit(row.ItemArray(2)) 'MessageBox.Show(stringSplit(row.ItemArray(2)))
' the first INSERT statement myOracleCommand.CommandText = _ "Insert Into Sales_Line(SALES_NUMBER,LINE_NUMBER,TRADE_CODE,PRODUCT_CODE,&qu ot; & _ "QUANTITY,UNIT_CODE,PRICE,AMOUNT,TAX,ACCOUNT_TAX,MEMO," & _ "SALES_VALUATION_COST,COST,LINE_TYPE,ORIGINAL_LINE_NUMBER," & _ "LAST_UPDATE_DATETIME,LAST_UPDATE_EMPLOYEE) values(35,35,'1','07','1','1', " & _ "'54',0,0,'54','ServiceID',0,0,0,0,sysdate,'999999')"
'Console.WriteLine("Running first INSERT statement") myOracleCommand.ExecuteNonQuery()
lineflag = False 'line2temp = row.ItemArray(1) i = i + 1 Next row Next table
Console.WriteLine("Committing transaction") myOracleTransaction.Commit()
上の処理の中で、ここのvalues (35,35 を for文でまわしながら連番を入れてたいですが、35のところにIを入れるとエラーになるし、max (sales_number)+1 のような関数も使えないです。 myOracleCommand.ExecuteNonQuery()のところで列がありませんというエラーがかえってきます。 ちなみにrow.ItemArray(2)はCSVファイルから読み込んだDATASETのデータが入ってます。そのデータ セット のデータをFOR文でまわしながらINSERT部分を入れなかった場合は中のデータを出力はすることはでき まし た。 いろいろ方法を考えてみたんですが、うまくいきません。 環境はvb.net 2003 にオラクル9.2を使ってます。
よろしくお願いします。
|