如何将图像从SQL Server加载到图片框?
我已经尝试了很多,我怎么能将图像从SQL Server加载到图片框,但我找不到非常有用的材料。
首先,我借助以下查询将图像保存到数据库中:
insert into imageTest (pic_id, pic) values(1, 'D:\11.jpg')
现在我想将图像加载到图片框中。
您从未将图像内容上载到数据库。 那只是文件名。
例如,假设您有一个可以使用的文件路径(考虑到问题的内容,您似乎可以这样做)。 在您的应用程序中,您将按照以下格式将其上载到数据库:
byte[] image = File.ReadAllBytes("D:\\11.jpg"); SqlCommand sqlCommand = new SqlCommand("INSERT INTO imageTest (pic_id, pic) VALUES (1, @Image)", yourConnectionReference); sqlCommand.Parameters.AddWithValue("@Image", image); sqlCommand.ExecuteNonQuery();
请记住,您的pic
字段很可能需要更改数据类型。 此信息的常见类型是VARBINARY
。
下一部分是将文件读入PictureBox。 为此,您需要输出数据:
SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT pic FROM imageTest WHERE pic_id = 1", yourConnectionReference)); DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet); if (dataSet.Tables[0].Rows.Count == 1) { Byte[] data = new Byte[0]; data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]); MemoryStream mem = new MemoryStream(data); yourPictureBox.Image= Image.FromStream(mem); }
这应该是关于它的。 您可能希望进行更好的安全检查,但这可以帮助您开始。
看看: http : //msdn.microsoft.com/en-us/library/ms175915.aspx
你改变的代码:
insert into imageTest (pic_id, pic) select 1, BulkColumn FROM Openrowset( Bulk 'D:\11.jpg', Single_Blob) as img
请参阅Muhammad,我们在动态场景中处理图像时所做的工作如下:
-
将图像上传到某个Web应用程序目录(如/ images /或其他)
-
我们将URL地址存储在表的数据库字段中。
-
想要包含图像的位置,只需将图像源设置为数据库字段即可显示。
希望这可以帮助
检查此代码:
SqlDataAdapter dAdapter = new SqlDataAdapter(new SqlCommand("SELECT Photo FROM Image", conn)); DataSet dSet = new DataSet(); dAdapter.Fill(dSet); if (dSet.Tables[0].Rows.Count == 1) { Byte[] data = new Byte[0]; data = (Byte[])(dSet.Tables[0].Rows[0]["Photo "]); MemoryStream mem = new MemoryStream(data); PictureBoxName.Image = Image.FromStream(mem); }
在数据中提到您的图像列名称。 如您在表单中提到的那样更改Picturebox名称。