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日

相关文章

  • C# menuStrip控件实现鼠标滑过自动弹出功能

    让我来为你详细讲解“C# menuStrip控件实现鼠标滑过自动弹出功能”的完整攻略。 一、前置知识 在学习本攻略前,我们需要先掌握以下知识: C#语言的基础语法和控件的使用方法; menuStrip控件的基本使用方法; 鼠标事件相关的知识。 二、实现过程 首先,我们需要在窗体上添加menuStrip控件,并在其中添加菜单项。在代码中,我们可以通过以下方法来…

    C# 2023年6月3日
    00
  • C#中事件的定义和使用

    C#中的事件是一种特殊的委托类型,它可以使对象在某个特定的时间点上引发或触发某个动作或事件。事件可以用于编写响应用户交互、处理消息通知等许多用途。 一、事件的定义 事件定义的基本语法格式如下: public delegate void SomeEventHandler(object sender, EventArgs e); public class Som…

    C# 2023年5月31日
    00
  • C#实现程序开机启动的方法

    以下是详细的讲解“C#实现程序开机启动的方法”的完整攻略。 1. 注册表 Windows系统提供了注册表,记录了Windows系统和各种软件的配置信息,其中的每一项都是一个键值对。可以通过修改注册表中相应的键值,实现程序的开机启动。 1.1 读取注册表 可以使用Microsoft.Win32.Registry类访问注册表,并读取相应的键值。以下是读取注册表中…

    C# 2023年6月6日
    00
  • C#中Razor模板引擎简单使用

    C#中的Razor模板引擎是一种用于在代码中嵌套HTML的模板引擎,它可以轻松地将动态数据嵌入HTML中。以下是使用Razor模板引擎的一些简单步骤。 第一步:安装Microsoft.Aspnetcore.Razor.runtime包 Razor模板引擎是使用Microsoft.Aspnetcore.Razor.runtime包实现的。使用NuGet包管理器…

    C# 2023年6月7日
    00
  • 详解C#借助.NET框架中的XmlTextReader类读取XML的方法

    下面给出详解C#借助.NET框架中的XmlTextReader类读取XML的方法的完整攻略。 1. XmlTextReader类简介 在使用C#操作XML文件时,我们可以使用.NET框架提供的XmlTextReader类,它提供了基于文本的XML解析器。这个解析器逐个读取XML文件中的节点并暴露它们的类型、数据和位置信息。XmlTextReader是一种轻量…

    C# 2023年6月3日
    00
  • 使用C#的aforge类库识别验证码实例

    作为网站作者,我可以为大家讲解一下使用C#的AForge类库识别验证码的完整攻略。 安装AForge类库 首先,我们需要在项目中安装AForge类库,可以通过NuGet进行安装。 打开Visual Studio,在项目面板上右键,点击“管理NuGet程序包”。在搜索框中输入“AForge”,找到“AForge.Imaging”和“AForge.Math”库并…

    C# 2023年6月3日
    00
  • C# String.IndexOf()方法: 查找指定的子字符串在字符串中的位置

    String.IndexOf()方法是C#中的一个字符串查找函数,它的作用是在一个字符串中查找指定字符/子字符串的位置。下面我详细讲解一下该方法的使用方法和使用过程。 方法语法 IndexOf()方法有两种语法: public int IndexOf(char value); public int IndexOf(char value, int startI…

    C# 2023年4月19日
    00
  • C#使用AutoResetEvent实现同步

    C#中使用AutoResetEvent实现同步是一种常见的方式,AutoResetEvent是一个同步对象,它允许一个线程等待另一个线程去发出一个信号,当信号发出后,等待的线程就会恢复执行。 实现方式: 首先需要在代码中创建一个AutoResetEvent实例对象,该对象用于线程间的同步,然后在需要同步的线程中调用WaitOne方法让线程等待信号,当发出信号…

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