C#保存图片到sql中并从sql读取图片
时间: 2023-09-05 17:07:11 浏览: 55
在 C# 中,可以将图片保存到 SQL 数据库中,也可以从 SQL 数据库中读取图片。下面是一个简单的示例:
保存图片到 SQL 数据库中:
```csharp
// 假设您已经将图片存储在了 byte[] buffer 中,并且有一个名为 "Images" 的表来存储图片
// 创建一个 SqlConnection 对象
using (var connection = new SqlConnection("your_connection_string"))
{
// 打开连接
connection.Open();
// 创建一个 SqlCommand 对象
using (var command = new SqlCommand("INSERT INTO Images (Image) VALUES (@Image)", connection))
{
// 将图片数据添加到参数集合中
command.Parameters.Add("@Image", SqlDbType.Image).Value = buffer;
// 执行命令
command.ExecuteNonQuery();
}
}
```
从 SQL 数据库中读取图片:
```csharp
// 假设您要从 "Images" 表中获取图片数据并显示在 PictureBox 控件中
// 创建一个 SqlConnection 对象
using (var connection = new SqlConnection("your_connection_string"))
{
// 打开连接
connection.Open();
// 创建一个 SqlCommand 对象
using (var command = new SqlCommand("SELECT Image FROM Images WHERE Id = @Id", connection))
{
// 添加参数
command.Parameters.Add("@Id", SqlDbType.Int).Value = 1; // 假设您要获取 Id 为 1 的图片
// 执行查询并获取 SqlDataReader 对象
using (var reader = command.ExecuteReader())
{
// 读取数据
if (reader.Read())
{
// 获取图片数据
var buffer = (byte[])reader["Image"];
// 创建一个 MemoryStream 对象
using (var stream = new MemoryStream(buffer))
{
// 使用 Image.FromStream 方法将 buffer 转换为一个 Image 对象
var image = Image.FromStream(stream);
// 将 Image 对象显示在 PictureBox 控件中
pictureBox1.Image = image;
}
}
}
}
}
```
请注意,这只是一个简单的示例,实际实现可能会因为数据格式、表结构等因素而有所不同。