, когда я пытаюсь захватить изображение на свою веб-камеру в VB.NET с помощью Emgu и скопировать его в другой PictureBox в другой форме с этим кодом Form23.PictureBox1.Image = New Bitmap(captureImageBox.Image)
и попытаться сохранить его в моей базе данных, он не сохраняется и появляется ошибка Empty path name is not legal
, но изображение есть и скопировано с веб-камеры PictureBox.Как сохранить изображение PictureBox в DB
это мой код в сохранении изображения в базе данных:
Dim a As OpenFileDialog = New OpenFileDialog
SQL = "UPDATE candidate SET photo='" [email protected] WHERE idn='" & cd & "'"
Dim sqlCommand As New MySqlCommand
sqlCommand.Parameters.Add("@photo", MySqlDbType.LongBlob)
sqlCommand.Parameters("@photo").Value = IO.File.ReadAllBytes(a.FileName)
With sqlCommand
.CommandText = SQL
.Connection = sConnection
.ExecuteNonQuery()
но если я сохранить изображение из OpenFileDialog
экономит. почему это не так? hmm есть ли проблема в моем коде при копировании изображения из PictureBox в другой?
UPDATE
попытался это, но он не работает либо:
Заменено это:
sqlCommand.Parameters.Add("@photo", MySqlDbType.LongBlob)
sqlCommand.Parameters("@photo").Value = IO.File.ReadAllBytes(a.FileName)
With sqlCommand
.CommandText = SQL
.Connection = sConnection
.ExecuteNonQuery()
с этим:
Dim ms As New IO.MemoryStream()
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim data As Byte() = MS.GetBuffer()
Dim p As New MySqlParameter("@photo", MySqlDbType.LongBlob)
p.Value = data
cmd.Parameters.Add(p)
sqlCommand.Parameters.Add("@cd", MySqlDbType.Int32).Value = cd
cmd.ExecuteNonQuery()
код Вы отправили не компилируется. Йо должно делать что-то другое. –
текст не соответствует коду. вы пытаетесь сохранить файлы байтов (код) или 'PictureBox1.Image' (вопрос)? и если вы сейчас создаете свои формы, «Form23 ...» будет неправильным. – Plutonix
Используйте отладчик. Поместите точку останова на строку ReadAllBytes и посмотрите на значение a.FileName – Steve