C#保存图片到数据库并读取显示图片的方法

  1. 整体思路

将图片转换为二进制,然后将二进制数据存储到数据库中,读取时从数据库中读取二进制数据,再将二进制数据转换为图片。

  1. 示范代码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();
    }
}
  1. 示范代码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技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • VS2013连接MySQL5.6成功案例一枚

    VS2013连接MySQL5.6成功案例一枚 相信很多开发者在使用VS2013开发项目时都遇到过连接MySQL5.6的问题,本篇文章将分享一枚成功案例,希望对各位开发者有所帮助。 环境准备 在连接MySQL5.6之前,需要准备以下环境: Visual Studio 2013 MySQL 5.6 MySQL Connector/C++ 6.1 MySQL Co…

    C# 2023年5月31日
    00
  • C#实现附件上传和下载功能

    我来介绍一下“C#实现附件上传和下载功能”的完整攻略,我们可以分为以下几个步骤: 1. 创建文件上传界面 我们需要创建一个文件上传的界面,它应该包括以下几个元素: 标题:表明这是一个文件上传界面的标题。 表单:用户需要在此表单中选择需要上传的文件,所以界面需要有一个表单,可供用户选择需要上传的文件。 “上传”按钮:用户选择完文件后,需要有一个按钮可以提交文件…

    C# 2023年6月1日
    00
  • C#11新特性预览及使用介绍

    C# 11新特性预览及使用介绍 介绍 C# 11新特性加入了一些新的语言特性,使得C#语言更具表达力和灵活性。在本文中,我们将介绍C# 11的一些新功能并演示如何使用它们。 新特性 1. 本地函数的支持 C# 10已经支持了本地函数的语法,但在C# 11中,我们可以在本地函数中使用“拓展方法”。具体而言,我们可以在本地函数中使用类的拓展方法。 例如,我们需要…

    C# 2023年5月14日
    00
  • ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法

    ASP.NET MVC提供了@Helper辅助方法和@Functions自定义函数来简化视图中的重复代码和处理逻辑,更好地实现页面渲染。以下是使用方法的完整攻略。 1. @Helper辅助方法的使用 @Helper辅助方法是一个在Razor视图中定义的,可以在其他视图中调用的函数,用来处理通用逻辑和代码。要使用@Helper辅助方法,请按照以下步骤进行: 1…

    C# 2023年5月31日
    00
  • ASP.NET MVC中使用log4net的实现示例

    下面是ASP.NET MVC中使用log4net的实现示例的完整攻略。 准备工作 首先,我们需要在ASP.NET MVC项目中安装log4net包。在Visual Studio中,可以通过NuGet Package Manager来安装: 打开Visual Studio; 打开ASP.NET MVC项目; 在Solution Explorer中右键单击项目名…

    C# 2023年5月31日
    00
  • asp.net 代码隐藏的编码模型

    ASP.NET代码隐藏编码模型是一种ASP.NET编程技术,可以有效地隐藏应用程序中的代码和资源文件,以增加应用程序的安全性。下面是ASP.NET代码隐藏的完整攻略,包括两个示例说明: 1. 使用<%# %> 标记实现动态绑定 使用 <%# %> 标记可以将 ASP.NET 数据绑定语句嵌入到标记内部,从而实现动态绑定。下面是一个使用…

    C# 2023年5月31日
    00
  • Unity的IPostBuildPlayerScriptDLLs实用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs实用案例深入解析 什么是IPostBuildPlayerScriptDLLs IPostBuildPlayerScriptDLLs是Unity中的一个接口类,可以在BuildPlayer过程中自定义处理DLL文件。通过在Unity编辑器中实现该接口,可以在生成构建设置时自定义处理DLL文件,从而…

    C# 2023年6月7日
    00
  • WPF如何绘制光滑连续贝塞尔曲线示例代码

    以下是关于如何在WPF中绘制光滑连续贝塞尔曲线的完整攻略。 1. 了解贝塞尔曲线 在开始绘制贝塞尔曲线之前,我们需要先了解贝塞尔曲线。贝塞尔曲线是由法国数学家Pierre Bézier所发明的数学曲线,通常用于二维或三维计算机图形中的路径和图形形状绘制。在WPF中,可以使用Path对象进行绘制。 贝塞尔曲线的基本元素是“控制点”,通过改变控制点可以构造不同形…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部