0

我有 2 个表格。我在Form1中获取连接到数据库的请求数据,将其发送到Form2,显示Form2并在连接到数据库后在Form2的构造函数中填写datagridview。在这里,我检查 sdr (SqlDataReader) 中是否有任何行。如果没有,我想做的是停止加载 Form2 并返回到 Form1。

我尝试了 this.close()但在执行 Form2 的构造函数时它不起作用。

if (!sdr.HasRows)
   {
      MessageBox.Show("No Data!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
      this.Close();
   }

有任何想法吗 ?

4

2 回答 2

2

数据的关闭和一般加载不必在 内部完成ctorForm而是在Form.Load事件内部完成。

例如:

//Form2.cs 



 public class Form2 : Form
 {
    ..... 

    public override OnLoad(EventArgs e)
    { 
       ......
       if (!sdr.HasRows)
       {
          MessageBox.Show("No Data!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
          this.Close();
        }
    }   


  }
于 2012-08-22T12:56:09.057 回答
1

为什么不在显示表格之前简单地检查一下?Form1 具有做出决定所需的数据。

if(!sdr.HasRows)
  //show error
else    
  //show form2.
于 2012-08-22T12:58:12.017 回答