2012-09-16 76 views
2

我使用的程序是WAMP服務器(特別是其MySQL的功能)和MS Visual Studio 2010和我編程在C#C#的WinForms控制 - 的DataGridView - 更新數據庫

基本上,這裏是我需要的,目前可以處理我的應用程序。

我在整個項目中都有好幾個datagridview,第一個很簡單,它只需按一下按鈕就可以從數據庫中的特定表中加載所有數據。我有另一種形式,我可以插入記錄,並設法做出一個刪除函數,要求用戶輸入2個字段(名字和姓氏),然後將它們放入查詢中並執行命令。

我需要做什麼?

我需要能夠實現某種方式的窗體來更新數據庫。我選擇通過datagridview控件來完成此操作,以便用戶在編輯時可以看到他們正在編輯的內容。

我有以下代碼,我試圖根據datagridview控件中的數據更新數據庫。

string connString = "server=localhost;User Id=root;database=collegelist;"; 
MySqlConnection conn = new MySqlConnection(connString); 
string selectSQL = "SELECT * FROM collegeemployee"; 
conn.Open(); 
MySqlDataAdapter da = new MySqlDataAdapter(selectSQL, conn); 
MySqlCommandBuilder builder = new MySqlCommandBuilder(da); 
DataTable table = new DataTable(); 
try 
{ 
    dgView2.Rows.RemoveAt(dgView2.CurrentRow.Index); 
    da.Update(table); 
} 
catch (Exception exceptionObj) 
{ 
    MessageBox.Show(exceptionObj.Message.ToString()); 
} 

與此代碼(在明顯的方法中列出)的問題是,雖然網格是能夠進行修改,這是無法將數據傳遞迴數據庫。

+0

你爲什麼試圖更新空表?你的綁定源或數據源的名稱是什麼?我更喜歡在代碼中進行綁定,這使得更新更容易。 – xeon111

+0

我有一個按鈕,它從數據庫中檢索數據並填充datagridview。然後這段代碼是將更改提交給數據庫。如果我將數據源設置得較早,其他表格將不會顯示 –

回答

1

而不是用空表更新你的數據庫你應該做的是。 i.獲取數據源。像 ii。更新/同步數據源和數據適配器 下面是它應該工作的代碼,如果它不請評論並告訴我問題。

string connString = "server=localhost;User Id=root;database=collegelist;"; 
MySqlConnection conn = new MySqlConnection(connString); 
string selectSQL = "SELECT * FROM collegeemployee"; 
conn.Open(); 
MySqlDataAdapter da = new MySqlDataAdapter(selectSQL, conn); 
MySqlCommandBuilder builder = new MySqlCommandBuilder(da); 
    BindingSource BindingSourceToUpdate = (BindingSource)dgView2.DataSource; // because direct casting to data table was failing in VS2o1o 

       try 
       { 
    dgView2.Rows.RemoveAt(dgView2.CurrentRow.Index); 

        da.Update((DataTable)BindingSourceToUpdate.DataSource); 
       } 
       catch(exception) 
       { 
       } 
conn.close(); 
+0

我會走了。乾杯。順便說一句,我已經做到了這一點,當你按下按鈕從表中選擇數據時,設置綁定源。 –

相關問題