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日

相关文章

  • ASP.NET Cache的一些总结分享

    ASP.NET Cache的一些总结分享 什么是缓存 缓存是一种用于优化应用程序性能的技术,通过将数据存储在内存中,可以更快地访问数据并减少对磁盘的访问次数。缓存通常用于存储频繁使用的数据,例如配置文件和数据库查询结果等。 缓存的优点 加快应用程序的响应时间 减少对数据源的访问次数 提高应用程序的可扩展性 ASP.NET Cache的基本用法 ASP.NET…

    C# 2023年6月3日
    00
  • C#拼图游戏编写代码(2)

    下面详细讲解如何编写C#拼图游戏的代码,具体分为以下步骤: 1. 创建WinForm窗口 代码中首先需要创建一个WinForm窗口,作为整个游戏的主界面。 public partial class FormMain : Form { public FormMain() { InitializeComponent(); } } 2. 添加拼图图片并进行切割 接…

    C# 2023年5月15日
    00
  • Apex英雄窗口模式怎么调?

    下面是关于“APEX英雄窗口模式怎么调”的完整攻略。 1. 什么是窗口模式? 窗口模式是指游戏在屏幕上呈现的方式,它通常有全屏模式和窗口模式两种。全屏模式会占据整个屏幕并且覆盖其他应用程序,而窗口模式则是在一个可移动和可调整大小的屏幕内运行游戏。 2. 如何调整APEX英雄的窗口模式 方法一:通过游戏设置 在APEX英雄中,可以很容易地通过游戏设置来调整窗口…

    C# 2023年6月6日
    00
  • 详解C# 中的正则表达式运用

    详解C#中的正则表达式运用 什么是正则表达式? 正则表达式(Regular Expression)是一种用来描述、匹配特定字符集合的字符串。一般用来做文本处理和字符串匹配,包括但不限于文本查找、替换、分割、提取等。 正则表达式的语法 具体的正则表达式语法非常复杂,这里只介绍C#的正则表达式语法常用的部分。 文本匹配 匹配单个字符:可以直接使用字符本身表示。例…

    C# 2023年6月8日
    00
  • 使用异步方式调用同步方法(实例详解)

    使用异步方式调用同步方法是一种常见的场景,比如一个方法需要同步执行,但是又不能阻塞主线程,那么就可以采用异步方式调用同步方法。 下面我们来详细讲解这个过程,包括基本原理和实例说明。 基本原理 在.NET中,可以使用Task类来创建异步任务,Task类可以表示一个异步操作,它可以在后台执行,而不会阻塞主线程。如果我们想要调用一个同步方法,但是又需要异步执行,可…

    C# 2023年6月3日
    00
  • c#线程间传递参数详解

    当我们在使用C#语言进行多线程编程时,常常需要在线程之间传递数据。本文将详细讲解C#线程间传递参数的方法。 方法一:使用Lambda表达式 在使用线程时,我们常常使用new Thread()方法创建线程。这时候,可以使用Lambda表达式的形式,在创建线程的时候传递参数。具体方法如下: using System; using System.Threading…

    C# 2023年6月7日
    00
  • asp.net 打印控件使用方法

    标题:ASP.NET打印控件使用方法 在ASP.NET开发过程中,打印控件是一个非常重要的组件。他可以方便用户进行在线的打印。本文将详细讲解ASP.NET中打印控件的使用方法。 打印控件引用 要使用ASP.NET中的打印控件,需要在页面中引用”System.Drawing.dll”和”System.Drawing.Printing.dll”这两个命名空间。 …

    C# 2023年6月3日
    00
  • Microsoft .Net Remoting系列教程之一:.Net Remoting基础篇

    Microsoft.NetRemoting系列教程之一:.NetRemoting基础篇 .NetRemoting是一种用于实现分布式应用程序的技术。本教程将提供.NetRemoting基础知识的完整攻略,包括如何创建.NetRemoting应用程序、如何定义远程对象、如何使用远程对象以及两个示例。 创建.NetRemoting应用程序 要创建.NetRemo…

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