2013-11-28 78 views
0

我正在開發C#而不使用任何framework.until現在我成功地在Datagrid上執行了以下任務。如何插入和更新數據庫表中的datagrid行

1.Displaying data in Data-grid by binding with database table 
2.Getting the selected row data from Data-grid based on primary key 

這裏是我的變量聲明:

SQLiteDataAdapter adap; 
SQLiteCommandBuilder cmdbl; 
DataSet ds; 
String Query; 
DataTable dt; 

下面是在數據網格中顯示的數據代碼:

try 
{ 
    Query = "Select * from Items"; 
    adap = new SQLiteDataAdapter(Query, GlobalVars.conn); 
    ds = new DataSet(); 
    adap.Fill(ds, "Items"); 
    dt = ds.Tables[0]; 
    dtgitems.DataContext = ds.Tables[0].DefaultView; 
    dtgitems.ItemsSource = dt.DefaultView; 
    ds.Dispose(); 
    adap.Dispose(); 
    dt.Dispose(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.ToString()); 
} 

這是工作的罰款 這裏是我更新的代碼數據網格

try 
{ 
    cmdbl = new SQLiteCommandBuilder(adap); 
    adap.Update(ds, "Items"); 
    // ds.Tables[0].Clear(); 
} 
catch (Exception ex) 
{ 

} 

它不工作。有誰知道我可以如何在數據網格中完成此更新功能? 。請幫我糾正更新opreation這個代碼.Thanks

+1

'DataContext'? 'ItemsSource'?的WinForms? – dotNET

+0

Asp.net ??或winforms? – Monika

+0

這是代碼wpf – user3012262

回答

0

雖然我會一個ObservableCollection工作,你可以用下面的代碼更新您的DataGrid項目:

dtgItems.Items.Refresh(); 

做到這一點,你更新源之後。 我應該像這樣在代碼中使用它: 您應該接受更改,以便更新數據庫。

try 
{ 
    cmdbl = new SQLiteCommandBuilder(adap); 
    adap.Update(ds, "Items"); 
    ds.Tables[0].AcceptChanges(); 
    dtgItems.Items.Refresh(); 
} 
catch (Exception ex) 
{ 

} 
+0

在哪裏添加此命令?:dtgItems.Items.Refresh();在更新代碼是這樣的:嘗試 { cmdbl =新的SQLiteCommandBuilder(適配器); adap.Update(ds,「Items」); dtgitems.Items.Refresh(); MessageBox.Show(「updated」); } catch(Exception ex) { } – user3012262

+0

我更新了我的答案。 –

+0

仍然無法使用dtgItems.Items.Refresh();命令沒有更新數據庫.... – user3012262

相關問題