2012-11-26 4 views
1

: 나는 데이터베이스에 열로부터 값을 가져옵니다 콤보를 가지고 내가내가 여기에 약간의 문제가

comboBox2.DataSource = ds1.Tables[0]; 
comboBox2.DisplayMember = "DoctorName"; 
comboBox2.ValueMember = "DoctorCode"; 
comboBox2.BindingContext = this.BindingContext; 
같은 데이터베이스 다른 palce 다시 데이터를 입력하는 데 사용합니다

이 의사의 이름 콤보 채우고 값은 의사 의 부호 것 다음

코드가 특정 행과 선택 한 Statment을 선택하는 권리 SQL 매니저 01에서 작동되어
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=c:\users\administrator\documents\visual studio 2010\Projects\Clinic\Clinic\Clinc.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 
     con.Open(); 
     SqlCommand cmd1 = new SqlCommand("SELECT Doctors.DoctorCode, Doctors.DoctorName, SessionReservations.SessionCode, SessionReservations.PatientCode, SessionReservations.ExaminationCode, SessionReservations.DoctorCode AS Expr1, SessionReservations.SessionMonth, SessionReservations.SessionYear FROM Doctors INNER JOIN SessionReservations ON Doctors.DoctorCode = SessionReservations.DoctorCode WHERE (Doctors.DoctorCode = @DoctorCode) AND (SessionReservations.SessionMonth = @month) AND (SessionReservations.SessionYear = @year)", con); 
     SqlDataAdapter da2 = new SqlDataAdapter(cmd1); 
     DataSet ds2 = new DataSet(); 

     try 
     { 

      da2.InsertCommand.Parameters.Add("@DoctorCode", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.SelectedValue); 
      da2.InsertCommand.Parameters.Add("@month", SqlDbType.Int).Value = comboBox1.SelectedValue; 
      da2.InsertCommand.Parameters.Add("@year", SqlDbType.Int).Value = textBox2.Text; 

      da2.Fill(ds2); 
      cmd1.ExecuteReader(); 
      con.Close(); 
} 

23,516,하지만 실행하는 동안이

"System.NullReferenceException 것을 오류 제공 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다합니다. C에서 Clinic.DoctorMoneyCall.button1_Click (개체 보낸 사람, EventArgs입니다 전자)에서 : \ 사용자 \ 관리자 \ 문서는 프로젝트 \ \ 클리닉 \ 클리닉 \ DoctorMoneyCall.cs을 비주얼 스튜디오 2010 : \ 라인 (45) "

전 단지

+5

줄 45입니까? –

+0

@fenonoga - 이것은 단지 null 참조 문제 일뿐입니다. 이것은 SQL 쿼리 실행에 고유하지 않습니다. –

+0

디버깅을 시도하고 확인란 및 텍스트 상자에 매개 변수로 전달할 값이 있는지 확인하십시오. –

답변

2

select 명령을 실행하려는 것 같습니다. 삽입 명령에 매개 변수를 추가하고 있습니다.

 da2.SelectCommand.Parameters.Add("@DoctorCode", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.SelectedValue); 
     da2.SelectCommand.Parameters.Add("@month", SqlDbType.Int).Value = comboBox1.SelectedValue; 
     da2.SelectCommand.Parameters.Add("@year", SqlDbType.Int).Value = textBox2.Text; 
+0

예, 매번 다른 것을 선택하고 싶습니다. 따라서 쿼리 문에서 변수를 만들어야합니다. –

+0

하지만 선택 명령이 아닌 삽입 명령에 추가했습니다. SQL 명령에는 선택, 업데이트, 삽입, 삭제의 4 가지 상태가 있습니다. 그것은 당신이 실행할 수있는 SQL querys에서옵니다. "insertcommand"를 "selectCommand"의 것으로 변경했습니다. – gashach

+0

오 하나님, 정말 고마워요. 어리 석고, 어리 석고, 어리 석다는 것을 아는 날을 실제로 찾으려고합니다. 더 많은 관심을 가져야합니다. 다시 한번 감사드립니다. –

0

잘못되어 가고 오류 메시지가 사용 된 개체 중 하나가 null 것을 의미한다 무엇을 이해하지 않습니다. 사기꾼 개체가 제대로 초기화되어 있습니까? 당신이 null 인 변수를 전달하는 것처럼

+0

예 연결이 올바르게 작동하고 레이블과 텍스트 상자의 값을 표시하여 올바르게 작동하는지 확인했습니다. –

0

것 같다 모든 값이 null이 아닌지 확인하십시오.

+0

이것은 많은 의미를 갖지 않습니다. 그가 전달하는 것은 폼에 존재하는 컨트롤의 내용과 그 값들 모두가 디폴트 값을 가지기 때문에'null '이 될 수 없다. –

관련 문제