Как я могу отобразить изображения из столбцов datagridview, чтобы в элемент управления PictureBox?
У меня сейчас голова болит о том, как вывести изображение с элементом управления datagridview (dgvMembers) в элемент управления PictureBox (pbMyImage). Мне удалось сохранить детали, которые включают в себя и изображение, но не на моем событии щелчка я хочу, чтобы изображение, которое я сохранил ранее, отображалось на поле изображения, когда я остановился.
вот код для сохранения данных в базе данных access:
<pre> 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("@photo", 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 = New OleDbCommand(cb) cmd.Connection = con 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", System.DateTime.Now.Date) 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", data) cmd.ExecuteNonQuery() CloseConnection() Reset() Getdata() 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
Что я уже пробовал:
А вот код для события click, которое я пробовал:
Private Sub dgvMembers_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvMembers.CellContentClick txtTBSNum.Text = dgvMembers.Rows(e.RowIndex).Cells("TBSNum").Value.ToString txtPassport.Text = dgvMembers.Rows(e.RowIndex).Cells("PassNum").Value.ToString txtName.Text = dgvMembers.Rows(e.RowIndex).Cells("Fname").Value.ToString txtSurname.Text = dgvMembers.Rows(e.RowIndex).Cells("Surname").Value.ToString dtDOB.Text = dgvMembers.Rows(e.RowIndex).Cells("DOB").Value.ToString dtDOJ.Text = dgvMembers.Rows(e.RowIndex).Cells("DOJ").Value.ToString cbStatus.Text = dgvMembers.Rows(e.RowIndex).Cells("Status").Value.ToString cbDesig.Text = dgvMembers.Rows(e.RowIndex).Cells("Design").Value.ToString cbGender.Text = dgvMembers.Rows(e.RowIndex).Cells("Gender").Value.ToString txtAddress.Text = dgvMembers.Rows(e.RowIndex).Cells("ResAdd").Value.ToString txtPhone1.Text = dgvMembers.Rows(e.RowIndex).Cells("Phone1").Value.ToString txtPhone2.Text = dgvMembers.Rows(e.RowIndex).Cells("Phone2").Value.ToString txtCity.Text = dgvMembers.Rows(e.RowIndex).Cells("City").Value.ToString txtEmail.Text = dgvMembers.Rows(e.RowIndex).Cells("EmailID").Value.ToString txtCity.Text = dgvMembers.Rows(e.RowIndex).Cells("City").Value.ToString 'pbMyImage.Image = dgvMembers.Rows(e.RowIndex).Cells("Photo").Value End Sub
Комментируемая строка здесь-это та, которая, как я подозреваю, имеет проблему. Я не получаю и ошибки, но изображение не отображается. Это меня беспокоит. Пожалуйста помочь.
A_Griffin
Из вашего кода я предполагаю, что изображение хранится в базе данных? Вы пробовали погуглить это? Попробуйте это для начала:
https://stackoverflow.com/questions/6350516/how-to-add-image-from-database-to-picturebox
Member 13513923
@A_Griffin, мое изображение уже было сохранено в базе данных, и я могу видеть, как оно загружается в мой datagridview из базы данных при загрузке формы. Проблема заключается в следующем: получить его из datagridview в столбце image и отобразить его на поле picture в той же форме.
Member 13513923
@A_Griffin, я уже пробовал:
MemoryStream ms = Новый Поток памяти(байт);
Image returnImage = изображение.FromStream(МС);
и я получаю ошибку:
Необработанное исключение типа 'System.ArgumentException' произошло в системе.Drawing.dll
Дополнительная информация: параметр недопустим.