2014-01-20 2 views
1

Я работаю на vb.net окна application..i я заселяющих моей DataGridView как this.I написал код в моей форме load событие, как это:Добавление изображения из DataGridViewImageColumn в базу данных в окнах приложения

Dim cd As SqlCommandBuilder = New SqlCommandBuilder(adapter) 
     adapter = New SqlDataAdapter("select c.cid,c.CompanyName,d.dtId,d.dtName as Department,d.dtPhone as Phone,d.dtEmail as Email from CompanyMaster_tbl c join DepartmentMaster_tbl d on c.Cid=d.cId order by cid", con.connect) 
     dt1 = New DataTable 
     bSource = New BindingSource 
     adapter.Fill(dt1) 'Filling dt with the information from the DB 
     bSource.DataSource = dt1 
     gv.DataSource = bSource 
     gv.Columns("cid").Visible = False 
     gv.Columns("dtId").Visible = False 
     Dim img As New DataGridViewImageColumn 
     img.HeaderText = "image" 
     gv.Columns.Insert(6, img) 

затем в содержимом ячейки нажмите я написал код, как это для загрузки изображения:

If e.ColumnIndex = 6 Then 
      Dim OFDLogo As New OpenFileDialog() 
      OFDLogo.Filter = "JPEG(*.jpg)|*.jpg|BMP(*.bmp)|*.bmp" 
      If OFDLogo.ShowDialog() = DialogResult.OK Then 
       gv.Rows(e.RowIndex).Cells(6).Value = Image.FromFile(OFDLogo.FileName) 
      End If 
     End If 

в кнопку сохранить я спасаю мои данные отдела, как это:

For i As Integer = 0 To gv.RowCount - 2 
    sqlInsertT2 = "Insert Into DepartmentMaster_tbl(dtname,dtphone,dtEmail,Cid) Values ('" + myTI.ToTitleCase(gv.Rows(i).Cells(3).Value) + "','" + gv.Rows(i).Cells(4).Value + "','" + gv.Rows(i).Cells(5).Value + "'," & Ccid & ");" 
Next 

У меня есть еще одно поле в главной таблице отделов .field Имя: empimage и тип данных image ..i хочу сохранить соответствующее изображение в этой таблице. Могу ли я сохранить изображение из таблицы данных в виде таблицы данных в базу данных.
мой DataGridView выглядеть следующим образом: enter image description here

+0

Google нашел меня это -> http://www.codeproject.com/Articles/437937/Save-and-Retrieve- Image-from-a-SQL-Server-Database – equisde

+0

в этой статье я уже проверил .. в том, что не указано, как сохранить изображение из представления datagrid – user3106114

+0

Действительно? Что такое 'Else'' Button2_Click'? вы можете заменить 'p.Value = data' своим собственным изображением таким образом' p.Value = gv.Rows (e.RowIndex) .Cells (6) .Value' – equisde

ответ

0

Попробуйте что-то вроде этого

Dim sql As String = "INSERT INTO Information VALUES(@name,@photo)" 
    Dim cmd As New SqlCommand(sql, con) 
    cmd.Parameters.AddWithValue("@name", "DepartmentName") 
    Dim ms As New MemoryStream() 
    Dim imgCon As New ImageConverter 
    ms.Read(imgCon.ConvertTo(DataGridView1.Rows(0).Cells(4).Value, GetType(Byte())), 0, 1024) 
    Dim data As Byte() = ms.GetBuffer() 
    Dim p As New SqlParameter("@photo", SqlDbType.Image) 
    p.Value = data 
    cmd.Parameters.Add(p) 
    cmd.ExecuteNonQuery() 
    MessageBox.Show("Name & Image has been saved", "Save", MessageBoxButtons.OK) 
+0

Ошибка идет в этой строке: ms.Read (gv.Rows (0) .Cells (6) .Value, 0, 1024) Ошибка: невозможно сбрасывать объект типа 'System .Drawing.Bitmap 'для ввода' System.Byte [] '. – user3106114

+0

Да. Я этого не понимал. Отредактировано – equisde

+0

sir i проверит и сообщит u – user3106114

Смежные вопросы