【问题标题】:WPF Datagrid which displays Access Database not editable显示 Access Database 不可编辑的 WPF Datagrid
【发布时间】:2016-02-27 14:02:14
【问题描述】:

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

我在 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();
    }

数据库中的数据很好地显示在数据网格中,我发现这种方法非常简单快捷,但是我无法修改网格的单元格。 我也确定数据网格已启用,因为我可以选择行和单元格。

【问题讨论】:

标签: wpf database xaml ms-access datagrid


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多