保持连接始终打开数据表twoway绑定?

时间:2013-05-10 22:11:19

标签: wpf database c#-4.0 data-binding

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

然而,我不喜欢的一件事是:_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();
        }

    }


}

0 个答案:

没有答案