ページの先頭行へ戻る
Symfoware Server V12.7.0 アプリケーション開発ガイド(ODBCドライバ編)
FUJITSU Software

B.5.5 探索条件付きSQL文での更新

探索条件付きSQL文でADO.NET連携でデータの更新を行うサンプルコードについて説明します。

本サンプルコードは、INSERT文実行後、メッセージボックスで完了を知らせます。

アプリケーションの手順

  1. OdbcConnectionオブジェクトでコネクションを接続します。詳細は、“B.5.1 接続および切断”を参照してください。

  2. OdbcCommandオブジェクトを生成します。(CommandTextプロパティへUPDATE文を設定します。)

  3. OdbcCommand.Parameters.AddメソッドでOdbcParameterオブジェクトの生成と設定を行います。SQL文中のパラメタマーカ('?')の出現順に生成してください。
    OdbcParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。
    OdbcParameter.Valueプロパティへパラメタの値を設定します。
    日時型のパラメタにはOdbcParameter.OdbcTypeプロパティを設定します。

  4. OdbcCommand.ExecuteNonQueryメソッドでUPDATE文を実行します。
    ExecuteNonQueryメソッドより更新された行数が返されます。

  5. 更新行数をメッセージボックスで表示します。

  6. コネクションを切断します。

  7. オブジェクトを破棄します。

エラー処理については、“B.5.10 エラー処理”を参照してください。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


        'オブジェクト宣言
        Dim con As System.Data.Odbc.OdbcConnection
        Dim com As System.Data.Odbc.OdbcCommand

        Dim i As Integer
        Dim msgstr As String

        'OdbcConnectionオブジェクトの生成
        con = New System.Data.Odbc.OdbcConnection("DSN=DSN01;UID=USER01;PWD=PASS01")

        Try
            '1. コネクション接続
            con.Open()

            '2. OdbcCommandオブジェクトの生成
            com = New System.Data.Odbc.OdbcCommand("UPDATE SAMPLE1.TESTTBL SET DEC_C=?,DAT_C=?,CHA_C = ? WHERE KEY_C = ?", con)

            '3. OdbcParameterオブジェクトの生成と設定
            com.Parameters.AddWithValue("DEC_C", 111111.111)
            com.Parameters.AddWithValue("DAT_C", "2099/12/31")
            com.Parameters("DAT_C").OdbcType = System.Data.Odbc.OdbcType.Date
            com.Parameters.AddWithValue("CHA_C", "更新データ")
            com.Parameters.AddWithValue("KEY_C", 100)


            '4. UPDATE文の実行
            i = com.ExecuteNonQuery
            '5. 更新行数をメッセージボックスで表示する
            MessageBox.Show(i & "行更新されました", "RowCount", MessageBoxButtons.OK, 
                                                       MessageBoxIcon.None)

            '6. コネクション切断
            con.Close()

            '7. オブジェクトの破棄
            con.Dispose()
            com.Dispose()

            'エラー処理
        Catch ex As System.Data.Odbc.OdbcException

            'エラー処理ルーチンを記述
            msgstr = "▲▼  COMMUNICATION OFF LINE  ▲▼"
            MessageBox.Show(msgstr, "!ERROR!", MessageBoxButtons.OK, 
                                               MessageBoxIcon.None)


        End Try



    End Sub
End Class