显示访问数据库不可编辑的WPF Datagrid

可有可无的乔

我希望能够编辑数据网格中的数据,并将所做的更改保存到我将其保存到数据库的位置。

我在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中,我发现此方法确实非常简单快捷,但是我无法修改网格的单元格。我还可以确保启用了datagrid,因为我可以选择行和单元格。

可有可无的乔

在网上搜索时,我找到了一个适用于我的解决方案,所以我会把它留在那里,以防万一有人需要它。

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,显示数据库并能够更改单元格的内容。

然后,在我的程序中,我设法添加项目,删除项目,清除所有项目并将datagrid中所做的更改保存到数据库中,如果您需要其中一些代码,只需在此处评论/给我发消息/大声尖叫。

编辑-哦,是的,您必须将数据库保存在程序的bin \ Debug文件夹中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章