请帮忙。我有一个注册表格,包括一些图片框。我已经尽了最大努力,但我现在卡住了,因为我分别得到以下两个错误消息:“对象引用未设置为对象的实例”和“条件表达式中的数据类型不匹配”错误。当我单步执行代码时,第一个错误发生在这一行:Dim bmpImage As New Bitmap(pbMyImage.Image),我想我正在添加的命令参数发生第二个错误。
以下是代码:
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
OpenConnection()
Dim ms As New MemoryStream()
Dim bmpImage As New Bitmap(pbMyImage.Image)
bmpImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim data As Byte() = ms.GetBuffer()
Dim p As New OleDbParameter("@image", OleDbType.VarBinary)
p.Value = data
Dim cb As String = "insert into
Members(TBSNum,PassNum,Firstname,Lastname,DOB,DOJ,Status,Designation,
Gender,ResAddress,Contact1,Contact2,EmailID,City,Photo)" &
"VALUES(@tbsnum,@passnum,@fname,@lname,@dob,@doj,@status,@design,@gender,
@resaddress,@contact1,@contact2,@email,@city,@photo)"
cmd.Parameters.AddWithValue("@tbsnum", txtTBSNum.Text)
cmd.Parameters.AddWithValue("@passnum", txtPassport.Text)
cmd.Parameters.AddWithValue("@fname", txtName.Text)
cmd.Parameters.AddWithValue("@lastname", txtSurname.Text)
cmd.Parameters.AddWithValue("@dob", dtDOB.MaxDate)
cmd.Parameters.AddWithValue("@doj", dtDOJ.MaxDate)
cmd.Parameters.AddWithValue("@status", cbStatus.SelectedItem)
cmd.Parameters.AddWithValue("@design", cbDesig.SelectedItem)
cmd.Parameters.AddWithValue("@gender", cbGender.SelectedItem)
cmd.Parameters.AddWithValue("@resaddress", txtAddress.Text)
cmd.Parameters.AddWithValue("@contact1", txtPhone1.Text)
cmd.Parameters.AddWithValue("@contact2", txtPhone2.Text)
cmd.Parameters.AddWithValue("@email", txtEmail.Text)
cmd.Parameters.AddWithValue("@city", txtCity.Text)
cmd.Parameters.AddWithValue("@photo", pbMyImage.Image)
cmd.ExecuteNonQuery()
CloseConnection()
MessageBox.Show("Successfully saved", " TKBS Member Record", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
数据库结构如下:
这是一个访问数据库