2011-03-25 223 views
0

我已阅读关于此问题的其他问题,但没有看到我的代码抛出此错误的位置或原因。我的代码如下,如果任何人都可以看到我要去哪里错了。C#错误'对象引用未设置为对象的实例'

private void btnSignIn_Click(object sender, EventArgs e) 
    { 
     sqlConnectionNW.ConnectionString = "Data Source=" + server + ";Initial Catalog=Northwind;Integrated Security=True"; 
     try 
     { 
      sqlConnectionNW.Open(); 
      String enteredDate = cmbDay.SelectedItem.ToString() + "/" + cmbMonth.SelectedItem.ToString() + "/" + cmbYear.SelectedItem.ToString(); 

      if ((txtEmployeeID.TextLength != 0) && (enteredDate.Length != 0)) 
      { 
       int ID = Convert.ToInt32(txtEmployeeID.Text); 
       employeesBindingSource.Filter = "EmployeeID ='" + txtEmployeeID.Text + "'"; 
       String birthDate; 
       birthDate = dsEmployees.Employees.FindByEmployeeID(ID).BirthDate.ToShortDateString(); 

       if (employeesBindingSource.Count > 0) //GETS TO HERE AND THEN GOES TO CATCH EX 
       { 
        sqlConnectionNW.Close(); 
        if (enteredDate.ToString() == birthDate.ToString()) 
        { 
         frmMenu frmMainMenu = new frmMenu(); 
         frmMainMenu.server = server; 
         frmMainMenu.employeeID = txtEmployeeID.Text; 
         MessageBox.Show("Welcome to the Northwind Ordering System"); 
         this.Hide(); 
         frmMainMenu.Show(); 
        } 
        else 
        { 
         MessageBox.Show("The birth date you have entered is incorrect"); 
        } 
       } 
       else 
       { 
        MessageBox.Show("The Employee ID you have entered does not exist"); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     sqlConnectionNW.Close(); 
    } 
+7

你可以发布堆栈跟踪吗?你知道哪一行是抛出错误吗? – Andy 2011-03-25 01:16:52

+1

@Jon,编译器如何帮助找到运行时异常的原因? – 2011-03-25 01:19:27

+0

已编辑帖子以显示发生错误的位置。 – 6TTW014 2011-03-25 01:21:25

回答

1

管理解决这个问题。我改变了这一点:

if ((txtEmployeeID.TextLength != 0) && (enteredDate.Length != 0)) 
      { 

       int ID = Convert.ToInt32(txtEmployeeID.Text); 

       employeesBindingSource.Filter = "EmployeeID ='" + txtEmployeeID.Text + "'"; 

       String birthDate; 

       birthDate = dsEmployees.Employees.FindByEmployeeID(ID).BirthDate.ToShortDateString(); // FROM HERE 

       if (employeesBindingSource.Count != 0) 
       { 

        sqlConnectionNW.Close(); 

要这样:

IF((txtEmployeeID.TextLength = 0)& &(enteredDate.Length = 0)!) {

   int ID = Convert.ToInt32(txtEmployeeID.Text); 

       employeesBindingSource.Filter = "EmployeeID ='" + txtEmployeeID.Text + "'"; 

       String birthDate; 

       if (employeesBindingSource.Count != 0) 
       { 
        birthDate = dsEmployees.Employees.FindByEmployeeID(ID).BirthDate.ToShortDateString(); //TO HERE 

        sqlConnectionNW.Close(); 

这是只是在if语句之后放置“birthDate = ...”的情况。

相关问题