Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataGridViewの更新
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9392#CommentId13135
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
Zi
 (社会人)
投稿日時
2009/10/16 03:09:43
DataGridViewの更新方法で手間取っているので質問に来ました。
データを削除して更新を行おうとすると、クエリ式A=データの数値の構文エラーですとエラーが出てできません。なぜなのでしょうか?
ソースです。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'▼データ取得
SQLCm.CommandText = "SELECT 1列目,2列目,3列目 FROM T_データマスタ"
Adapter.Fill(Table)
'▼値の表示
DataGridView1.DataSource = Table
'▼セルをクリックしたらその行が選択される
DataGridView1.MultiSelect = False
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
'▼後処理
'Table.Dispose()
'Adapter.Dispose()
'SQLCm.Dispose()
'Cn.Dispose()
End Sub
'▼削除ボタン
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=データフ ァイル.mdb")
Dim SQLCm As OleDbCommand = Cn.CreateCommand
Dim Adapter As New OleDbDataAdapter(SQLCm)
Dim Builder As New OleDbCommandBuilder(Adapter)
Dim Table As New DataTable
Private Sub btn_sakuzyo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sakuzyo.Click
Dim r As DataGridViewRow
For Each r In DataGridView1.SelectedRows
If Not r.IsNewRow Then
DataGridView1.Rows.Remove(r)
End If
Next r
End Sub
Private Sub btn_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_save.Click
Dim Table As DataTable = DirectCast(DataGridView1.DataSource, DataTable)
For Each Row As DataRow In Table.Rows
Dim SQL As String = ""
Select Row.RowState
Case DataRowState.Deleted
'▼削除されたレコードの場合
SQL = "DELETE FROM T_データマスタ WHERE "
SQL &= " 1列目 = " & Row("1列目", DataRowVersion.Original)
Case Else
Continue For
End Select
SQLCm.CommandText = SQL
Try
Cn.Open()
SQLCm.ExecuteNonQuery()←ここでエラーが発生
Cn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Next
Table.Dispose()
SQLCm.Dispose()
Cn.Dispose()
End Sub
削除ボタンがエラーを起こしている要因の一つかもという懸念があるので削除ボタンものせておきました。
よろしくお願いします。