0

winformsプロジェクトに.sdfファイル(sqlceserver v3.5)を追加しました。次に、.sdfデータベースを追加し、そのデータセットモデルを選択しました。また、これにdatagridviewを追加し、スクロールペインからそのデータソースを「LogBindingSource1」として選択しました。残りのコードは自動的に生成されました。datagridviewの列を選択しました。プロジェクトを実行してグリッドから行を削除すると、変更がデータベースに反映されません。私は次のことを試みました:

Private Sub DataGridView1_UserDeletedRow(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) Handles DataGridView1.UserDeletedRow  

    For i As Integer = 0 To DataGridView1.SelectedRows.Count - 1
        'Me.Database1DataSet3.log.Rows.RemoveAt(Convert.ToUInt16(DataGridView1.Rows(DataGridView1.SelectedRows(i).Index).Cells(0).Value))
        'Me.LogTableAdapter1.Delete(Convert.ToUInt16(DataGridView1.Rows(DataGridView1.SelectedRows(i).Index).Cells(0).Value))
        'Me.DataGridView1.Rows.RemoveAt(Me.DataGridView1.SelectedRows(i).Index)
        'Dim ind As Integer = DataGridView1.SelectedRows(i).Index
        Me.LogBindingSource1.RemoveAt(e.Row.Index)
        DataGridView1.Refresh()
        DataGridView1.Update()
        'Me.LogTableAdapter1.Update(Me.Database1DataSet3.Tables(0))
    Next

End Sub

私が試したすべての順列を示すためにコメントを表示しています。Logは、グリッドにバインドされているテーブルの名前であり、データベース内の単一のテーブルであることに注意する必要があります。

質問する前に、次のリソースにアクセスしました:1)https://stackoverflow.com/questions/10575169/inserting-data-from-a-datagridview-to-a-sdf-sql-database 2)https://stackoverflow。 com / questions / 10575169 / inserting-data-from-a-datagridview-to-a-sdf-sql-database(テーブルアダプターを使用しません)3)http://www.codeproject.com/Articles/24656/A-詳細-データバインディング-チュートリアル(冗長すぎる)

4

1 に答える 1

1

この未回答の質問に気づきました。datagridviewハイライトされた行を調べて、データベースから削除する簡単な方法は次のとおりです。独自の接続文字列とデータベース名を指定する必要があります。ここでは、それを呼び出しますRanchconn

Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
    Ranchconn.Open()
    cmdRanch.Connection = Ranchconn
    For Each row As DataGridViewRow In cdgvRanchEntry.SelectedRows
        cmdRanch.CommandText = "Delete * FROM Entries where ID = " & row.Cells("ID").Value
        cmdRanch.ExecuteNonQuery()
        cdgvRanchEntry.Rows.Remove(row)
    Next row
    Ranchconn.Close()
End Sub
于 2013-03-20T15:23:47.783 に答える