发生AccessViolationException

时间:2014-07-17 08:22:59

标签: c# winforms ms-access-2010

当打开文件对话框错误时,我进入VS 2012"尝试读取或写入受保护的内存。这通常表明其他内存已损坏。"

我发现错误导致OleDb对象。

在我的表单上的Load事件中,我有数据库连接的Open和Close语句。

    private void Menu2_Load(object sender, EventArgs e)
    {
        ConnectionString myConnString = new ConnectionString();
        OleDbConnection AccessDbConnection = new OleDbConnection(myConnString.DbConnectionString());
        AccessDbConnection.Open();
        AccessDbConnection.Close();
    }

在我的按钮触发事件中,我有

    private void button1_Click(object sender, EventArgs e)
    {
        myFileDialog1.ShowDialog();
    }

这就是异常提升的地方。

如果我没有在“加载表单事件”

中关闭数据库连接,则异常消失
//AccessDbConnection.Close();

有趣的是,如果我在按钮触发事件中打开和关闭数据库连接,然后再打开对话框就可以了。

因此,只有在我的表单数据库关闭连接语句的“加载”部分中,才会引发错误。

有什么建议吗?

0 个答案:

没有答案