c# - 如何从 SQL Server 加载图像到图片框?

标签 c# winforms sql-server-2008 picturebox

我尝试了很多方法来发现如何从 SQL Server 加载图像到图片框,但我找不到非常有用的 Material 。

首先,我借助以下查询将图像保存到数据库中:

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);
} 

这应该是关于它的。您可能想要进行更好的安全检查,但这应该有助于您入门。

关于c# - 如何从 SQL Server 加载图像到图片框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084590/

相关文章:

winforms - 如何为具有 EF 数据源的多个报表重用一个 ReportViewer 控件?

sql-server - 如何在Sql Server 2008中加密数字列?

sql-server-2008 - 必须声明标量变量 "@TEMPLATE_NAME"

sql - 您如何知道在 SQL Server 2008 中创建约束的方法是什么?

c# - 没有相机的 FileOpenPicker

c# - 将 JToken 内容反序列化为对象

c# - 非静态方法或字段错误需要一个对象

winforms - .NET ListView 和 Windows 7

c# - 使用存储过程显示错误消息

c# - 变换鼠标坐标