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 回答