tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル For文でInsertを連続的に使う方法
投稿日: 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を使ってます。

よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。