C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体
时间: 2024-03-05 20:51:09 浏览: 212
好的,我可以帮你解决这个问题。
首先,让我们来看一下如何将图片保存到数据库中。假设你有一个名为`image`的`byte[]`数组,它包含了你要保存的图片数据。以下是一个例子,用于将这个数组保存到 SQL Server 数据库中的一个名为`image_table`的表中:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "INSERT INTO image_table (image_data) VALUES (@ImageData)";
SqlCommand command = new SqlCommand(sql, connection);
SqlParameter imageDataParam = new SqlParameter("@ImageData", SqlDbType.VarBinary, -1);
imageDataParam.Value = image;
command.Parameters.Add(imageDataParam);
command.ExecuteNonQuery();
}
```
上面的代码中,`connectionString`是你的数据库连接字符串,`image_table`是你要保存图片的表名,`image_data`是你要保存图片的列名。
接下来是如何从数据库中读取图片并显示到窗体上。假设你有一个名为`pictureBox1`的`PictureBox`控件,用于显示图片。以下是一个例子,用于从 SQL Server 数据库中的`image_table`表中读取图片数据,并将其显示到`pictureBox1`上:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "SELECT image_data FROM image_table WHERE id = @Id";
SqlCommand command = new SqlCommand(sql, connection);
SqlParameter idParam = new SqlParameter("@Id", SqlDbType.Int);
idParam.Value = id;
command.Parameters.Add(idParam);
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
byte[] image = (byte[])reader["image_data"];
MemoryStream stream = new MemoryStream(image);
Image img = Image.FromStream(stream);
pictureBox1.Image = img;
}
}
```
上面的代码中,`id`是你要读取图片的行的 ID。`pictureBox1`是你要显示图片的控件。
希望这些代码可以帮助你实现图片上传和显示的功能。如果你有其他问题,请随时问我。
阅读全文