2014-05-12 5 views
-1

이 코드를 작성하여 항목 이름을 emp_state로 지정하고 문제는 @ d3에 있습니다. 콤보 상자에서 항목을 선택하면 매개 변수 @ d3에 오류가 발생합니다. 기본값이 없습니까? 여기 VB.NET 매개 변수에는 기본값이 없습니다

코드입니다, 나에게 솔루션

Dim sSQL As String = "insert into emp_state(Badge,Name,State,Date_of_Join,Date_of_Termination,Reasons,Information) values (@d1,@d2,@d3,@d4,@d5,@d6,@d7)" 
      Dim cmd As OleDbCommand = New OleDbCommand(sSQL, cn) 


     ' Badge 
     Dim Badge As OleDbParameter = New OleDbParameter("@d1", OleDbType.VarWChar, 8) 
     Badge.Value = TextBox1.Text.ToString() 
     cmd.Parameters.Add(Badge) 

     ' Name 
     Dim Name As OleDbParameter = New OleDbParameter("@d2", OleDbType.VarWChar, 50) 
     Name.Value = TextBox2.Text.ToString() 
     cmd.Parameters.Add(Name) 

     ' State 
     ComboBox1.SelectedIndex = 0 
     Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20) 
     ComboBox1.SelectedIndex = ComboBox1.Items.IndexOf("State") 
     cmd.Parameters.Add(State) 


     'Date_of_Join 
     Dim Date_of_Join As OleDbParameter = New OleDbParameter("@d4", OleDbType.Date, 15) 
     Date_of_Join.Value = dtpDOB.Text.ToString() 
     cmd.Parameters.Add(Date_of_Join) 

     'Date_of_Termination 
     Dim Date_of_Termination As OleDbParameter = New OleDbParameter("@d5", OleDbType.Date, 15) 
     Date_of_Termination.Value = DateTimePicker1.Text.ToString() 
     cmd.Parameters.Add(Date_of_Termination) 

     'Reasons 
     Dim Reasons As OleDbParameter = New OleDbParameter("@d6", OleDbType.VarWChar, 9999) 
     Reasons.Value = TextBox3.ToString() 
     cmd.Parameters.Add(Reasons) 

     'Information 
     Dim Information As OleDbParameter = New OleDbParameter("@d7", OleDbType.VarWChar, 9999) 
     Information.Value = TextBox4.ToString() 
     cmd.Parameters.Add(Information) 
+0

는 아무것도 ComboBox1''에 선정되어 있습니까? 또한,'AddWithValue' - cmd.Parameters.AddWithValue ("@ d3", ComboBox1.Items.IndexOf ("State") ' – Tim

+0

을 사용하여 코드를 단축 할 수 있습니다. 내가 직접 항목의 첫 번째 항목이고 DB에서 업데이트되지 않은 항목 – user2134328

+0

'@ d3'은 다른 모든 매개 변수의 패턴을 따르지 않습니다. 다른 모든 매개 변수는 하나의 "Dim OldDbParameter"로되어 있습니다. 그리고 나서 다음 줄에 그 매개 변수의 값을 설정하지만'State' 매개 변수에 대한 값을 설정하지 마십시오 –

답변

0
' State 
    ComboBox1.SelectedIndex = 0 
    Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20) 
    ComboBox1.SelectedIndex = ComboBox1.Items.IndexOf("State") 
    cmd.Parameters.Add(State) 

다시이 부분을 읽으을주지하시기 바랍니다.

  1. 당신은 첫 번째 항목을 선택하는 콤보 상자를 설정
  2. 다음 당신은 다음 몇 가지 항목을 찾기 위해 노력하여 인덱스에 콤보 상자의 인덱스를 설정
  3. 당신의 매개 변수를 만들?
  4. 는 당신은 parameterList에에 빈 매개 변수를 추가
당신이하고 싶었던 것을

임 asuming은 다음과 같습니다

' State 
    ' ComboBox1.SelectedIndex = 0 
    Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20) 
    State.Value = ComboBox1.SelectedItem.Value 
    cmd.Parameters.Add(State) 
+0

콤보 상자에 사임, 릴리스, 전송 및 종료라는 네 개의 항목이 있습니다. 두 번째 또는 세 번째를 선택하려면 자동으로 첫 번째 것을 선택하십시오. 해결 방법은 무엇입니까? – user2134328

+0

옵션이 올바른 값으로 설정된 경우 Combobox에 얼마나 많은 항목이 있는지가 중요하지 않습니다. 위의 코드는 일반적으로 올바른 v 귀하의 매개 변수를 변경하십시오. 당신이 가진 문제는 ComboBox1.SelectedIndex = 0을 수행하여 첫 번째 항목으로 콤보 상자를 설정한다는 것입니다. –

+0

상태의 액세스 DB에있는 유형이 텍스트입니까, 변경해야합니까? – user2134328

관련 문제