【发布时间】:2019-04-29 16:35:27
【问题描述】:
首先,我想指出,我对编程很陌生,还在学习。
我正在尝试通过单击按钮将多个图像插入到我的表格中。我将图像存储在一个文件夹中,这些图像的文件名与我的 SQL Server 表中的 ID 列匹配。
我的表有 30 列和 5000 行。我可以连接我的表,但我只是不知道如何将此文件夹中的所有图像插入到我的表中并匹配 ID(即如果 ID=123456 我想将一个名为 123456.jpg 的图像文件插入到列 @ 987654323@)。
以下是我的代码,我们将不胜感激。顺便说一句,列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
我遇到了一个错误
无法绑定到 DataSource 上的属性或列 Image。参数名称:dataMember
【问题讨论】:
-
看这里...sqlshack.com/upload-multiple-images-sql-server 和这里...stackoverflow.com/questions/15659835/… 希望这些帮助。
-
感谢您的回复,但我只是不知道该怎么做 5000 次。我知道我需要一个循环,但怎么做?
-
您需要从数据库中选择具有文件所在路径名的行,然后选择每个文件 = 键,然后使用该图像更新照片字段。循环遍历图像的数组列表。
-
所以我可以在我的表单中添加一个 openfiledialog 并获取 X 的文件夹路径。从这里我尝试过;对于 DataGridWiev1.Rows 中的每一行 cmd.Commandtext="INSERT INTO Northwind Where Image=" +ID+".jpg" Next 但仍然没有结果
-
您不会想要
INSERT,因为行已经存在...您想要Update。有关解决方案,请参阅 Tripodi 先生的答案。
标签: .net sql-server vb.net image insert