Вставка нескольких изображений в SQL Server - PullRequest
0 голосов
/ 29 апреля 2019

Прежде всего, я хотел бы отметить, что я очень новичок в программировании и все еще учусь.

Я пытаюсь вставить несколько изображений в мою таблицу одним нажатием кнопки. Мои изображения хранятся в папке, и имена файлов этих изображений соответствуют столбцу идентификатора в моей таблице SQL Server.

В моей таблице 30 столбцов и 5000 строк. Я могу подключить свою таблицу, но я просто не знаю, как вставить все изображения в этой папке в мою таблицу с соответствующим идентификатором (т. Е. Если ID = 123456, я хочу вставить файл изображения с именем 123456.jpg в столбец Photo).

Ниже приведен мой код, и любая помощь будет оценена. Кстати, столбец Photo имеет тип данных varbinary(max).

Dim con As SqlConnection
Dim cmd As SqlCommand

Dim ds As New DataSet

con = New SqlConnection("server=MY-PC; Initial Catalog=Northwind;Integrated Security=SSPI")
cmd = New SqlCommand()
con.Open()
cmd.Connection = con

BindingSource1.DataSource = 

cmd.CommandText = "SELECT * FROM Northwind WHERE ID LIKE '" + TextBox1.Text + "'"
' dr = cmd.ExecuteReader
Dim adapter As New SqlDataAdapter(cmd)
Dim table As New DataTable
adapter.Fill(table)

BindingSource1.DataSource = table
DataGridView1.DataSource = BindingSource1

Я пытался:

Dim BS As New BindingSource 'assumes this is bound to your table already
PictureBox1.DataBindings.Add("Image", BS, "ImageCol")

For Each DrowView As DataRowView In BS
        PictureBox1.Image = Image.FromFile("PathToImages\" & DrowView("NameID") & ".jpg")

        Try
            Using SqlConn As New SqlConnection("server=MY-PC; Initial Catalog=Northwind;Integrated Security=SSPI")
                Using NorthwindDA As New SqlDataAdapter("SELECT * FROM Northwind Where ID like '" + TextBox1.Text + "'", SqlConn)
                    Using NorthwindCB As New SqlCommandBuilder(NorthwindDA)
                        NorthwindDA.Update(table)
                    End Using
                End Using
            End Using
        Catch ex As Exception
            'Handle exception
        End Try
Next

Я получаю сообщение об ошибке

Невозможно выполнить привязку к свойству или столбцу Image в источнике данных. Имя параметра: dataMember

1 Ответ

0 голосов
/ 29 апреля 2019

Поскольку вы используете источник привязки, вы можете выполнять итерации элементов списка, установить свойство PictureBox.Image для изображения из файла, которое также связано с источником привязки, а затем обновить таблицу. В противном случае вы попадете в ByteArrays, Streams и т.д ..

    Dim BS As New BindingSource 'assumes this is bound to your table already
    PictureBox1.DataBindings.Add("Image", BS, "ImageCol")

    For Each DrowView As DataRowView In BS
        PictureBox1.Image = Image.FromFile("PathToImages\" & DrowView("NameID") & ".jpg")

        Try
            Using SqlConn As New SqlConnection("server=MY-PC; Initial Catalog=Northwind;Integrated Security=SSPI")
                Using NorthwindDA As New SqlDataAdapter("SELECT * FROM Northwind Where ID like '" + TextBox1.Text + "'", SqlConn)
                    Using NorthwindCB As New SqlCommandBuilder(NorthwindDA)
                        NorthwindDA.Update(table)
                    End Using
                End Using
            End Using
        Catch ex As Exception
            'Handle exception
        End Try

    Next
...