2016-02-27 67 views
0

我希望能在一個DataGrid和我做出保存回由我帶他們在數據庫中的更改編輯數據。WPF的Datagrid,顯示Access數據庫不可編輯

我在XAML網格是這樣的:

<DockPanel Grid.Row="1"> 
         <DataGrid Name="dg_Misc" Margin="2" Background="{x:Null}" VerticalGridLinesBrush="Black" Foreground="Black"/> 
</DockPanel> 

,我填充它是這樣的:

public void CaricaGrid() 
    { 
     OleDbConnection connessione = new OleDbConnection(); 

     connessione.ConnectionString = ConfigurationManager.ConnectionStrings["Connection"].ToString(); 
     connessione.Open(); 

     OleDbCommand cmd = new OleDbCommand(); 
     cmd.CommandText = "select* from [Miscellanea]"; 
     cmd.Connection = connessione; 
     OleDbDataReader rd = cmd.ExecuteReader(); 

     dg_Misc.ItemsSource = rd; 
     dg_Misc.Items.Refresh(); 
    } 

數據從數據庫顯示以及到DataGrid中,我發現這個方法非常簡單而快速,但我無法修改網格的單元格。 我也確定數據網格已啓用,因爲我可以選擇行和單元格。

+0

此鏈接可能會有所幫助:[http://stackoverflow.com/questions/3084831/two-way-wpf-datagrid-binding-to-database] – dev1998

+0

非常感謝! –

回答

0

通過網絡搜索,我發現一個解決方案,它的工作形成了我,所以我要離開那裏的情況下,任何人都需要它。

public void CaricaGrid() 
    { 
     try 
     { 
      connessione = new OleDbConnection(); 

      connessione.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "\\DatabaseInventario.accdb"; 

      if (connessione.State != ConnectionState.Open) 
      { 
       connessione.Open(); 
      } 

      AttaccaGrid(); 
     } 
     catch { MessageBox.Show(messErrDb); } 
    } 

private void AttaccaGrid() 
    { 
     cmd = new OleDbCommand(); 
     cmd.Connection = connessione; 
     cmd.CommandText = "SELECT* FROM Miscellanea"; 
     da = new OleDbDataAdapter(cmd); 

     dt = new DataTable(); 
     da.Fill(dt); 

     dg_Misc.ItemsSource = dt.AsDataView(); 
     dg_Misc.Items.Refresh(); 
    } 

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     CaricaGrid(); 
    } 

使用這種方法我已成功地加載Access數據庫在WPF DataGrid中,displying數據庫,並能夠更改單元格的內容。

在我的程序中,我設法添加項目,刪除項目,清除所有項目並將數據網格中所做的更改保存到數據庫中,如果您需要這些代碼中的一部分,請在此處發表評論/給我發送消息/尖叫聲高聲。

編輯 - 哦,是的,你得保存您的數據庫在你的程序的bin \ Debug文件夾。