我已将.sdf文件(sqlceserver v3.5)添加到我的winforms项目中。然后我添加了一个.sdf数据库并为其选择数据集模型。我还为此添加了一个datagridview,并从滚动窗格中将其数据源选为“LogBindingSource1”。 Rest代码是自动生成的。我选择了datagridview.Now的列,当我运行项目并从网格中删除行时,更改根本没有反映到数据库中。 我尝试了以下操作:
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-Detailed-Data-Binding-Tutorial(太冗长)
答案 0 :(得分: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