C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: データベース更新


(過去ログ 99 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■58915 / inTopicNo.1)  データベース更新
  
□投稿者/ jrk (1回)-(2011/05/04(Wed) 02:48:42)

分類:[.NET 全般] 

VB2008です

以下のプログラムでデータグリッドビュー上では行の削除を
行うことができるようになったのですが、
データベース上にも反映させるにはどう改善したらよいのでしょうか?

''' -------------------------------------
'''
''' 削除ボタンの処理
'''
''' --------------------------------------
Private Sub sakuzyo_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sakuzyo_btn.Click

For Each row As DataGridViewRow In DataGridView.SelectedRows
DataGridView.Rows.Remove(row)

Next


End Sub


Private Sub DataGridView_UserDeletingRow(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowCancelEventArgs) Handles DataGridView.UserDeletingRow

If (Not e.Row.IsNewRow) Then

Dim response As DialogResult = _
MessageBox.Show( _
"Are you sure you want to delete this row?", _
"Delete row?", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2)
If (response = DialogResult.No) Then
e.Cancel = True

End If
End If


End Sub


引用返信 編集キー/
■58919 / inTopicNo.2)  Re[1]: データベース更新
□投稿者/ やじゅ (1885回)-(2011/05/04(Wed) 12:37:27)
やじゅ さんの Web サイト
No58915 (jrk さん) に返信
> VB2008です
> データベース上にも反映させるにはどう改善したらよいのでしょうか?

データベースの接続や読み取りは出来ているのでしょうか?

データベースの更新は幾つか方法があります。参考リンクだけ提示しておきます。
※提示したリンク先のデータベースは統一性はありません、あくまで文法的な参考として。


DataAdapter によるデータ ソースの更新
http://msdn.microsoft.com/ja-jp/library/33y2221y.aspx#Y1369

BindingSourceを使用してのデータベース更新
http://noccinet.blog57.fc2.com/blog-entry-2.html

ExecuteNonQueryを使用してのデータベース更新
http://homepage1.nifty.com/rucio/main/VBdotNet/Database/Database3.htm

Googleブックス プレビューで読める範囲
VB.NET+SQL Server データベースアプリ作成考え方のキモ: DB職人が教える
http://bit.ly/mHB2Ss
引用返信 編集キー/
■58920 / inTopicNo.3)  Re[2]: データベース更新
□投稿者/ jrk (2回)-(2011/05/04(Wed) 14:40:17)
接続はできています。
登録処理はできますので。

以下のようにしてみたのですが、またDBの更新ができません。
どこがおかしいのでしょうか。

''' -------------------------------------
'''
''' 削除ボタンの処理
'''
''' --------------------------------------
Private Sub sakuzyo_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sakuzyo_btn.Click

''Me.DataGridView.Rows.RemoveAt(Me.DataGridView.CurrentCell.RowIndex)

Dim connStr As String = "Data Source = OWNER-PC\SQLEXPRESS; Initial Catalog = kakeibo; Integrated Security = True"

Dim sql As String = "SELECT * FROM Table_1"
Dim conn As SqlClient.SqlConnection = New SqlClient.SqlConnection(connStr)

Dim comm As SqlClient.SqlCommand = New SqlClient.SqlCommand(sql, conn)
Dim dataadapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(comm)

Dim ds As DataSet = New DataSet()

conn.Open()
dataadapter.Fill(ds, "Table_1")
conn.Close()
DataGridView.DataSource = ds
DataGridView.DataMember = "Table_1"

Dim sqlCmdBuilder As New SqlClient.SqlCommandBuilder(dataadapter)
sqlCmdBuilder.GetUpdateCommand()
dataadapter.Update(ds.Tables("Table_1"))


End Sub
引用返信 編集キー/
■58922 / inTopicNo.4)  Re[3]: データベース更新
□投稿者/ やじゅ (1886回)-(2011/05/04(Wed) 20:07:26)
やじゅ さんの Web サイト
No58920 (jrk さん) に返信

削除ボタンイベントに読み込みから更新処理まで書いたら、そりゃ削除されませんよ。
読み込み部分と更新処理を分離させないと。

dataadapterは、フォームのフィールド変数に定義する

Me.DataGridView.Rows.RemoveAt(Me.DataGridView.CurrentCell.RowIndex)
Dim sqlCmdBuilder As New SqlClient.SqlCommandBuilder(dataadapter)
sqlCmdBuilder.GetUpdateCommand()
dataadapter.Update(ds.Tables("Table_1"))

参考
http://blog.livedoor.jp/akf0/archives/51536291.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -