为了操作图片读取和存储SQL Server,我们需要使用C#语言和SQL Server数据库。在这个过程中,我们将通过以下步骤实现:
- 读取图片文件
- 将图片文件转换为字节数组(byte数组)
- 将字节数组保存到SQL Server中
- 从SQL Server中读取字节数组
- 将字节数组转换回图片文件
下面是一个示例代码,在SQL Server中保存图片:
// 定义一个函数,将图片文件转换为字节数组
public static byte[] ConvertImageToByte(string imagePath)
{
FileStream fs = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] bytes = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return bytes;
}
// 定义一个函数,将字节数组保存到SQL Server
public static void SaveImageToDatabase(byte[] imageBytes, string connectionString)
{
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO Images (ImageData) VALUES (@ImageData)";
SqlParameter param = new SqlParameter("@ImageData", SqlDbType.VarBinary);
param.Value = imageBytes;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
conn.Close();
}
使用示例:
byte[] imageBytes = ConvertImageToByte(@"C:\image.jpg");
SaveImageToDatabase(imageBytes, connectionString);
另一个示例是从SQL Server中读取存储的图片,并将其转换为图像文件:
// 定义一个函数,从SQL Server中读取字节数组
public static byte[] GetImageFromDatabase(string connectionString)
{
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT TOP 1 ImageData FROM Images";
byte[] bytes = (byte[])cmd.ExecuteScalar();
conn.Close();
return bytes;
}
// 定义一个函数,将字节数组转换为图像文件
public static void ConvertByteToImage(byte[] imageBytes, string savePath)
{
MemoryStream ms = new MemoryStream(imageBytes);
Image image = Image.FromStream(ms);
image.Save(savePath);
}
// 使用示例,从SQL Server中读取存储的图片,并将其转换为图像文件
byte[] imageBytes = GetImageFromDatabase(connectionString);
ConvertByteToImage(imageBytes, @"C:\newImage.jpg");
以上示例中的 connectionString
变量是一个包含SQL Server连接字符串的字符串变量。在实际应用中,你需要用你自己的SQL Server连接字符串替换它。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作图片读取和存储SQLserver实现代码 - Python技术站