- 整体思路
将图片转换为二进制,然后将二进制数据存储到数据库中,读取时从数据库中读取二进制数据,再将二进制数据转换为图片。
- 示范代码1:保存图片到数据库
首先,我们需要创建一个包含二进制数据的表格来存储图片。在该表格上创建两个字段:图片ID和图片内容。然后,使用下面的代码将图片转换为二进制数据,并将其插入到表格中:
// 读取图片文件
FileStream fs = new FileStream("图片路径", FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
// 将图片转换为二进制数据
byte[] imageBytes = br.ReadBytes((int)fs.Length);
// 将二进制数据插入到数据库中
string connectionString = "连接字符串";
string sqlCommand = "INSERT INTO TableName (ImageID, ImageContent) VALUES (@id, @content)";
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(sqlCommand, conn))
{
// 添加参数
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@content", SqlDbType.Binary, imageBytes.Length).Value = imageBytes;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
- 示范代码2:从数据库读取图片并显示
使用下面的代码从数据库读取二进制数据,并将其转换为图片:
//从数据库读取二进制数据
string connectionString = "连接字符串";
string sqlCommand = "SELECT ImageContent FROM TableName WHERE ImageID = @id";
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(sqlCommand, conn))
{
// 添加参数
cmd.Parameters.AddWithValue("@id", 1);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
// 读取二进制数据并转换为图片
if (reader.HasRows)
{
reader.Read();
byte[] imageBytes = (byte[])reader["ImageContent"];
MemoryStream ms = new MemoryStream(imageBytes);
Image image = Image.FromStream(ms);
// 在控制台中显示图片
Console.WriteLine(image.Width.ToString());
Console.WriteLine(image.Height.ToString());
Console.ReadLine();
}
reader.Close();
conn.Close();
}
}
通过这两个示例代码,可以轻松地将图片保存到数据库中,并从数据库中读取并显示图片。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#保存图片到数据库并读取显示图片的方法 - Python技术站