2011年7月28日木曜日

→→→VB2005Express SQLExpress 接続

Dim sCom As SqlClient.SqlCommandBuilder
Dim dSet As DataSet = New DataSet()
Dim dAdp As SqlClient.SqlDataAdapter
Dim scn As SqlClient.SqlConnection = New SqlClient.SqlConnection()
scn.ConnectionString = "Data Source=.\SQLEXPRESS;AttchDbFile name=" &
                                My.Application.Info.DirectoryPath &
                                "\***.mdf; Integrated Security = True; Connect TimeOut=30;
                                  User Instance = True"
dAdp = New SqlClient.SqlDataAdapter("SELECT * FROM テーブル" , scn)
dAdp.Fill( dSet, "t_テーブル" )
sCom = New SqlClient.SqlCommandBuilder( dAdp )

For i As Integer = 0 To dSet.Tables("t_テーブル").Rows.Count - 1
      dSet.Tables("t_テーブル").Rows(i)("項目") = "代入値"
Next

dAdp.Update( dSet, "t_テーブル")
scn.Close()
-----------------------------------------------------------------------
データセットに取得したレコードの更新をデータベースに反映するには
SqlCommandBuilderオブジェクトを生成してから
SqlDataAdapterオブジェクトのUpdateメソッドを実行する

SqlCommandBuilderオブジェクトの生成はNewキーワードを使い
引数にSqlDataAdapterオブジェクトを指定する

New SqlCilent.SqlCommandBuilder( SqlDataAdapter )

SqlCommandBuilderオブジェクトはデータセットの変更に対応するSQL文を自動的に作成します

データセットのレコード更新はDataRowオブジェクトに、フィールドのインデックスまたは名前を指定し
新たな値を代入します
DataTableオブジェクト.Rows( レコードのインデックス )( フィールドのインデックス/名前 ) = 値

更新後,SqlDataAdapterオブジェクトのUpdateメソッドを実行すると
データセットの変更がデータベースに反映される

Updateメソッドの引数には、DataSetオブジェクトとテーブル名を指定する

SqlDataAdapterオブジェクト.Update( DataSetオブジェクト, テーブル名 )

0 件のコメント:

コメントを投稿