0

我正在开发一个 WPF 项目,其中包括对许多表的更新/删除/插入操作。为简单起见,我为每个表使用了一个数据网格。用户可以直接对这些表进行操作。完成后,单击一个按钮,数据库中的表将得到更新。在这种情况下,双向绑定是完美的。下面的代码似乎工作正常。

但是,我不喜欢的一件事是:_DBConnection 始终处于打开状态。它会关闭,直到表单存在。通常,我总是在需要时打开连接,使用它,立即关闭它。

所以,我的问题是:下面的代码是进行双向绑定的正确方法吗?

谢谢

public partial class MainWindow : Window
{
    private OleDbConnection _DBConnection;

    private OleDbDataAdapter _DataAdapterAdmin;
    private DataSet _DataSetAdmin;

    public MainWindow()
    {
        InitializeComponent();

    }

    private void InitAdminGrid()
    {
        string cmd = "SELECT * FROM Admin ORDER BY LastName";
        _DataAdapterAdmin = new OleDbDataAdapter(cmd, _DBConnection);
        _DataSetAdmin = new DataSet();
        _DataAdapterAdmin.Fill(_DataSetAdmin);

        dgAdministration.BeginInit();
        dgAdministration.DataContext = _DataSetAdmin.Tables[0];
        dgAdministration.Items.Refresh();
        dgAdministration.EndInit();
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        string connectionString = clsDataAccess.GetConnectionString();
        _DBConnection = new OleDbConnection(connectionString);
        _DBConnection.Open();

        InitAdminGrid();
    }

    private void btnStart_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            OleDbCommandBuilder cmd = new OleDbCommandBuilder(_DataAdapterAdmin);
            _DataAdapterAdmin.Update(_DataSetAdmin);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }

    private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if (_DBConnection != null)
        {
            _DBConnection.Close();
            _DBConnection.Dispose();
        }

    }


}
4

0 回答 0