如何将 SQL Server 中的图像加载到图片框中? [英] How to load image from SQL Server into picture box?
问题描述
我尝试了很多方法来发现如何将图像从 SQL Server 加载到图片框,但我找不到非常有用的材料.
I've tried a lot to find that how can I load an image from SQL Server to picture box but I couldn't find very much helpful material.
首先,我在以下查询的帮助下将图像保存到数据库中:
First I saved image into the data-base with the help of following query:
insert into imageTest (pic_id, pic)
values(1, 'D:11.jpg')
现在我想将图像加载到图片框中.
Now I want to load the image into a picture box.
推荐答案
您从未将图像内容上传到数据库.这只是文件名.
You never uploaded the image contents to the database. That's just the file name.
举个例子,假设您有一个文件路径可以使用(鉴于问题的内容,您似乎可以使用).在您的应用程序中,您将按照以下格式将其上传到数据库:
Say, as an example, that you have a file path to work with (it seems you do, given the question's contents). In your application, you would upload this to the database following this format:
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
.
Please bear in mind that your pic
field will more than likely need to change data type. A common type for this information is VARBINARY
.
下一部分是将文件读入图片框.为此,您需要选择数据:
The next part is reading the file into a PictureBox. For this, you'll need to SELECT the data out:
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);
}
应该就是这样.您可能希望进行更好的安全检查,但这应该可以帮助您入门.
And that should be about it. You might want to do better safety checks, but this should help you get started.
这篇关于如何将 SQL Server 中的图像加载到图片框中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!