2013-11-28 3 views
0

Я разрабатываю C# без использования каких-либо фреймворков. Теперь я успешно выполнил следующую задачу в 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; 

Вот код для отображения данных в Data-сетки:

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(); в коде обновления, например: try { cmdbl = новый SQLiteCommandBuilder (адаптировать); adapt.Update (ds, "Items"); dtgitems.Items.Refresh(); MessageBox.Show («обновлено»); } улов (исключение ex) { } – user3012262

+0

Я обновил свой ответ. –

+0

все еще не работает с dtgItems.Items.Refresh(); command..it не обновляет базу данных .... – user3012262

Смежные вопросы