2011-03-25 2 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

+1

@ 존, 런타임 예외의 원인을 찾는데 컴파일러가 어떻게 도움이 될까요? –

+0

오류가 발생한 위치를 표시 할 게시물을 편집했습니다. – 6TTW014

답변

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(); 

: :이 변경

((txtEmployeeID.TextLength)는 (enteredDate.Length는 = 0) & & 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 = ..."를 넣는 경우입니다.