2013-08-31 51 views
0

我試圖在C#Windows窗體應用程序。我試圖刪除的GridView特定行和變更推到數據庫中。該刪除確實會刪除該行。我想要做的就是將更新後的gridview推入數據庫。如何推動更新GridView控件數據庫?

  private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
     { 
      string ind = e.RowIndex.ToString(); 
      int myint = int.Parse(ind); 
      dataGridView1.Rows.Remove(dataGridView1.Rows[myint]); 

     } 

這是我用來顯示數據庫的代碼。

using (SqlConnection MyConn = new SqlConnection("Data Source=LENOVO\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=SampleData")) 
     { 
      string query = "SELECT * from dbo. userpass"; 
      SqlCommand cmd = new SqlCommand(query, MyConn); 
      try 
      { 
       SqlDataAdapter sda = new SqlDataAdapter(); 
       sda.SelectCommand = cmd; 
       DataTable dbdataset = new DataTable(); 
       sda.Fill(dbdataset); 
       BindingSource bSource = new BindingSource(); 
       bSource.DataSource = dbdataset; 
       dataGridView1.DataSource = bSource; 
       sda.Update(dbdataset); 
      } 
      catch 
      { 

      } 

     } 

回答

1

調用函數之前,使您使用填寫功能DataGrid和調用該函數並刷新網格的代碼。

dataGridView1.Rows.Refresh(); 
0

如果你正在做這個市場,我建議你掏錢購買像SyncFusion/Telerik的/的DevExpress等實際的WinForms框架他們中的大多數應該有一套工具來直接綁定他們的WinForm的電網之一數據庫表,並擁有所有的CRUD操作的直接與基礎表進行交互。

另一個選擇是使用實體框架,實體框架數據源控件,然後綁定到網格,再次CRUD操作應該只流到數據庫,(但我建議你使用WPF控件與此方法)。

在一天結束的時候,不推倒重來。

0

您正在使用的BindingSource所以它只是一個案例:

.CommandText = "DELETE FROM YourTable WHERE Identifier =" & PrimaryKey 
0

使用DELETE SQL查詢:

bSource.RemoveCurrent(); 

,並在同一時間使用ExecuteNonQuery方法從數據庫中刪除除去該行的數據,並再次調用數據庫的連接方法刷新網格,你會得到更新的代碼