GridViewをコードで更新する方法(MySQL) - D-ramのWeb開発日記

GridViewをコードで更新する方法(MySQL)

GridViewの更新はCommandFieldを追加するだけで簡単にできますが、MySQLだとそうはいきません。データソース構成ウィザードでUpdateCommandをうまく作れないためです。
ということでここでは、コードからGridViewを更新する方法をご紹介します。SQLServerであればこんなことは不要なんですけどね。
ここで紹介する画面イメージは以下のようになっています。


gridview1.png

更新したい項目をTemplateFieldにしておきます。GridViewの列の編集から開くダイアログでフィールドを選択して「このフィールドを TemplateField に変換します。」リンクをクリックします。


gridview2.png


これで基本的には準備完了です。あとはコードを書きます。どのイベントに書くかというと、GridViewのRowUpdaingに記述します。
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As _
    System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating

  '更新対象の行をGridViewRowオブジェクトとして取得
    Dim row As GridViewRow = GridView1.Rows(e.RowIndex)
    'TemplateFieldのTextBoxのIDを指定して取得
    Dim url As TextBox = CType(row.FindControl("TextBox1"), TextBox)
    Dim title As TextBox = CType(row.FindControl("TextBox2"), TextBox)
    Dim desc As TextBox = CType(row.FindControl("TextBox3"), TextBox)

    'UpdateCommand設定
    SqlDataSource1.UpdateCommand = "UPDATE bookmark.items SET url = ?, title = ?,  description = ? WHERE (id = ?)"
    '各パラメータを設定
    SqlDataSource1.UpdateParameters.Add("param1", CStr(url.Text))
    SqlDataSource1.UpdateParameters.Add("param2", CStr(title.Text))
    SqlDataSource1.UpdateParameters.Add("param3", CStr(desc.Text))
    SqlDataSource1.UpdateParameters.Add("param4", CStr(row.Cells(0).Text))

End Sub

これで更新が可能になります。



【関連記事】

このブログ記事について

このページは、d-ramが2007年12月 7日 13:58に書いたブログ記事です。

ひとつ前のブログ記事は「ASP.NET MySQLへのODBC接続」です。

次のブログ記事は「ASP.NET MySQLへConnector/Netで接続」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。