[英]How Do I Edit Database Records In A DataGridView Using LINQ to SQL?
我離這很近,但是我需要一點幫助。 我有一個簡單的WinForms應用程序,該應用程序使用LINQ to SQL來獲取需要從數據庫中檢查的數據並將其填充到DataGridView
。 那部分效果很好,但是我似乎無法建立的聯系是,當事情發生變化時如何將數據返回數據庫。
這是我到目前為止的內容:
db = new SiteDataDataContext();
src = new BindingSource();
src.DataSource = GetSitesPendingApproval(); // Returns IQueryable<Site>.
dataGridView1.DataSource = src;
dataGridView1.AllowUserToDeleteRows = true;
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
我要執行兩項操作:
checkbox
為boolean
值IsActive
( DataGridView.Columns
[7])被選中/未選中我想改變要被發送到數據庫中。 datagridview
刪除記錄時,我希望它也從數據庫中刪除。 我顯然缺少某種綁定,提交,合並,追加或單元格更改的事件處理程序,但是我無法弄清楚連接以將更改發送回去。 如果只是簡單地進行所有更改,然后單擊某種“提交”按鈕將其全部發送回去,那也很好。
您是否嘗試為UserDeletingRow事件添加事件處理程序,該事件處理程序使用行上的ID從數據庫中刪除行?
private void DataGrid_UserDeletingRow(object sender,
DataGridCommandEventArgs e)
{
TableCell itemCell = e.Item.Cells[0]; // assumes id is in column 0
int id = int.Parse(item.Text); // assumes it's non-null
using (var dc = new SiteDataDataContext())
{
var site = dc.Sites.Where(s => s.ID == id).SingleOrDefault();
if (site != null)
{
try
{
dc.Sites.DeleteOnSubmit( site );
dc.SubmitChanges();
dataGridView1.Bind();
}
catch (SqlException)
{
e.Cancel = true;
}
}
}
}
如果刪除失敗,您也可能會提供一條錯誤消息,但是如何執行將取決於您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.