2016-08-14 15 views
-3

私はMicrosoft Visual Studio 2010 Expressを使用していますが、VB.NETを使用して登録フォームを作成しようとしています。これまでのコードです:クエリ値と宛先フィールドの数が同じではありません。 vb.netのエラー

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click 
    Dim cardStr As String 
    Dim formStr As String 
    Dim birthStr As String 
    Dim goodmoralStr As String 

    If cbcard.Checked Then 
     cardStr = "OK" 
    Else 
     cardStr = "" 
    End If 

    If cbform.Checked Then 
     formStr = "OK" 
    Else 
     formStr = "" 
    End If 

    If cbbirth.Checked Then 
     birthStr = "OK" 
    Else 
     birthStr = "" 
    End If 

    If cbgoodmoral.Checked Then 
     goodmoralStr = "OK" 
    Else 
     goodmoralStr = "" 
    End If 

    Dim cmd As New OleDbCommand 
    Dim conn As New OleDbConnection(conStr) 
    conn.Open() 
    cmd.Connection = conn 
    cmd.CommandType = CommandType.Text 
    cmd.CommandText = "insert into tblEnroll(StudID,StudLevel,StudFName,StudMName,StudLName,StudGender,StudBirthday,StudNationality,StudContact,StudPOB,StudCitizenship,StudReligion,MomName,MomContact,MomOccupation,DadName,DadContact,DadOccupation,PrevSchool,Card,F137,BirthCertificate) values ('" & txtID.Text & "','" & lbGrade.Text & "','" & txtFName.Text & "','" & txtMName.Text & "','" & txtLName.Text & "','" & lbGender.Text & "','" & dtpBirthDate.Text & "','" & txtNationality.Text & "','" & txtStudContact.Text & "','" & txtPOB.Text & "','" & txtCitizen.Text & "','" & txtReligion.Text & "','" & txtMom.Text & "','" & txtMomContact.Text & "','" & txtMomOccupation.Text & "','" & txtDad.Text & "','" & txtDadContact.Text & "','" & txtDadOccupation.Text & "','" & txtPrevSchool.Text & "','" & cardStr & "','" & formStr & "','" & birthStr & "','" & goodmoralStr & "')" 
    cmd.ExecuteNonQuery() 
    conn.Close() 
    MessageBox.Show("Student Successfully Enrolled!")` 

解決方法はありますか?

答えて

1

INSERTステートメント値に1つの列が多すぎます。値goodmoralStrには、挿入する対応する列がありません。

SQLインジェクションの問題を避けるために、コード内でパラメータ化されたSQLを使用してください。

関連する問題