2012-09-19 96 views
0

我已經添加了一個.sdf文件(sqlceserver v3.5)到我的winforms項目。然後我添加了一個.sdf數據庫併爲其選擇數據集模型。我還爲此添加了一個datagridview,並從滾動窗格中選擇了它的數據源作爲「LogBindingSource1」。其餘代碼是自動生成的。我選擇了datagridview的列。現在,當我運行項目並刪除網格中的行時,這些更改根本不會反映到數據庫中。 我試着做以下幾點:無法刪除.sdf數據庫中的行從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-Detailed-Data-Binding-Tutorial(太冗長)

回答

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