Microsoft Visual Studio 2010 Expressを使用していますが、VB.NETを使用して登録フォームを作成しようとしています。これまでのコードです:INSERT INTO文で構文エラーが発生する
Private Sub insrt()
If picStr = vbNullString Then
'save the current image default (noimage)
picImage.Image.Save(".png", Imaging.ImageFormat.Png)
'reload current " Noimage" to a binary
picStr = Application.StartupPath + (".\noimage.png")
End If
'set image object to value
IMG = (Nothing)
IMG = Image.FromFile(picStr)
'fill mystream into image binary
MyStream = New MemoryStream
IMG.Save(MyStream, Imaging.ImageFormat.Png)
Dim gen As String = String.Empty
If rbtnMale.Checked = True Then
gen = "Male"
ElseIf rbntFemale.Checked = True Then
gen = "Female"
End If
Dim dob As String = cboDay.Text & "/" & cboMonth.Text & "/" & txtYr.Text
Dim con As New OleDbConnection(cnSettings)
con.Open()
Try
If txtID.Text = "" Then
MsgBox("Please Enter year enrolled and Generate ID for this Student")
Exit Sub
Else
Dim cmd As New OleDbCommand
cmd.Connection = con
cmd.CommandText = "INSERT into tbEnroll(StudentID,Firstname,Lastname,Gender,DOB,Hometown,Region,Sess,Batch,Class,GFirstname,GLastname,GTel,GEmail,GResidence,DateEnroll,Picture) values ('" & txtID.Text & "','" & txtFN.Text & "','" & txtLN.Text & "','" & gen & "','" & dob & "','" & txtHomeTWN.Text & "','" & cboRegion.Text & "','" & cboSession.Text & "','" & txtBatch.Text & "','" & cboClass.Text & "','" & txtGfirst.Text & "','" & txtLastnm.Text & "','" & txtTel.Text & "','" & txtEmail.Text & "','" & txtRes.Text & "','" & DateTimePicker1.Text & "', @img ,)"
cmd.Parameters.AddWithValue("@img", OleDbType.VarBinary).Value = MyStream.GetBuffer
cmd.ExecuteNonQuery()
cmd.Dispose()
MyStream.Dispose()
MyStream = Nothing
MsgBox("Enrollment Done successfully", , "Enrollment")
cleartxt()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
この解決策は何ですか?
*「Class」は予約語で、もう1つはSQL paramを使用していないそれで、ひどいSQLスープには、あまりにも多くの、あるいは、あまりにも多くのダニが存在する可能性があります。さらに、すべてを文字列として渡すことによって不注意なデータ型変換が発生します。 – Plutonix