C# 外部组件抛出异常

时间:2021-01-10 22:32:00

标签: c# windows visual-studio

后端数据库:访问。有未处理的异常破坏了应用程序。我正在尝试使用 Try/Catch/Finally,并尝试使用该应用程序一次识别一个代码错误。可能有很多地方导致未处理的异常,但我想其中一些是类似的问题。我只是四处玩耍并修复我找到的位置。

这里是第一个导致异常错误的地方。让我解释一下我是如何来到这里的。首先,我点击ChildForm1 buttonXYZ,查询没有返回记录;然后我单击父窗体 menustrip 按钮并尝试打开 ChildForm2。错误出现在 ChildForm2_Load 行 Cn.Open。这是错误截图。

出了什么问题,如何解决?

谢谢。

enter image description here

enter image description here

     //First, I click ChildForm1 buttonXYZ, and the query returns no record
 private void buttonXYZ_Click(object sender, EventArgs e)
 {
    
     try
     {
         Cn.Open();
         string sqlStr = "SELECT ......";
         adapt = new OdbcDataAdapter(sqlStr, Cn);
         dt = new DataTable();
         adapt.Fill(dt);
         dgvABC.DataSource = dt;
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         MessageBox.Show(ex.Message);
     }
     finally
     {
         Cn.Close();
     }
    
 }
    
    
    
 //Then I click parent form menustrip button and try to open ChildForm2
 private void OpenChildForm2ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (ActiveMdiChild != null)
         ActiveMdiChild.Close();
    
     ChildForm2 childForm2 = new ChildForm2();
     childForm2.MdiParent = this;
     childForm2.WindowState = FormWindowState.Maximized;
     childForm2.Show();
 }

2 个答案:

答案 0 :(得分:0)

您在创建适配器之前打开了一个连接。使用此代码:

 var sqlStr = "SELECT ......";
 DataTable dt = new DataTable();
    using (cn =
                new OdbcConnection(ConnectionString))
    {
        using (OdbcDataAdapter adapt =
                new OdbcDataAdapter(sqlStr , cn))
        {
        
         adapt.Fill(dt);
         dgvABC.DataSource = dt;

        }
    }
}
  

答案 1 :(得分:0)

尝试将 Platform target 修改为 x86x64,然后重新构建项目。

按步骤:

Project => Properties => Build

enter image description here