如何在没有图像的数据中插入具有图像列的数据库?

时间:2016-09-10 03:03:28

标签: mysql sql vb.net visual-studio-2015

我已经尝试了几天,但我无法请某人帮助我。

我的mySql数据库有一个图像列,每当我输入没有图像的数据时,它就不会输入数据。我的代码可能有问题,但我不知道该放什么。即使用户没有在图片框中放置图像,我也需要能够输入数据。谢谢!

 Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    On Error Resume Next
    cn.Open()
    Using cmd As New SqlClient.SqlCommand("INSERT INTO tblMembers(name, contactno, address, birthday, baptism, ministry, memberpic)VALUES('" & txtName.Text & "','" & txtContactNo.Text & "','" & txtAddress.Text & "','" & dtpBirthday.Text & "','" & dtpBaptism.Text & "','" & txtMinistry.Text & "',@memberpic)", cn)
        cmd.Parameters.Add(New SqlClient.SqlParameter("@memberpic", SqlDbType.Image)).Value = IO.File.ReadAllBytes(a.FileName)
        i = cmd.ExecuteNonQuery
    End Using
    If (i > 0) Then
        MsgBox("Save record successfully!", MsgBoxStyle.Information, "Save")
        Clear()
    End If
    cn.Close()
    ShowRecord()
End Sub

2 个答案:

答案 0 :(得分:1)

默认情况下,mysql中的列可以为空。除非您明确添加NOT NULLUNIQUE,否则不应出现任何问题,否则查询将接受空值。

每当你没有一个memberpic时,只需替换null

答案 1 :(得分:0)

使用if包裹您的代码段的第5行。 if应该是"如果图像被上传"或者"如果a.fileName不为null"