对象引用和数据类型不匹配错误

时间:2017-11-15 11:35:32

标签: vb.net

请帮忙。我有一个注册表格,包括一些图片框。我已经尽了最大努力,但我现在卡住了,因为我分别得到以下两个错误消息:“对象引用未设置为对象的实例”和“条件表达式中的数据类型不匹配”错误。当我单步执行代码时,第一个错误发生在这一行: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

数据库结构如下:

enter image description here

这是一个访问数据库

0 个答案:

没有答案