C#从SQL server数据库中读取l图片和存入图片

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
+关注继续查看

一、从图片中获得二进制值的基本方法:Image.Save 方法 (String, ImageFormat)
这会将保存 Image 写入指定的文件中指定的格式。

命名空间: System.Drawing
程序集: System.Drawing(位于 System.Drawing.dll)

语法:
public void Save( string filename, ImageFormat format)
参数
filename
Type: System.String
一个字符串,包含要保存此文件的名称 Image。

format
Type: System.Drawing.Imaging.ImageFormat
用于此 ImageFormat 的 Image。(包括.JGP、png等格式)

异常

ArgumentNullException: filename 或 format 是 null.

ExternalException: 使用错误的图像格式保存图像。- 或 - 图像已保存到同一文件从创建它。

二、Bitmap.Save 方法
命名空間: System.Drawing
組件: System.Drawing (於 System.Drawing.dll)

多載清單:
1、Save(Stream, ImageCodecInfo, EncoderParameters) :使用指定的編碼器和影像編碼器參數,將此影像儲存至指定的資料流。(繼承自 Image。)
2、Save(Stream, ImageFormat) 將這個影像以指定的格式儲存至指定的資料流。(繼承自 Image。)
3、Save(String) 這會將儲存 Image 到指定的檔案或資料流。(繼承自 Image。)
4、Save(String, ImageCodecInfo, EncoderParameters) 這會將儲存 Image 至指定的檔案,以指定的編碼器和影像編碼器參數。(繼承自 Image。)
5、Save(String, ImageFormat) 這會將儲存 Image 至指定的檔案中指定的格式。(繼承自 Image。)

三、将图片保存在数据库和从数据库中还原程序的示例:

//存图片
private void button1_Click(object sender, EventArgs e)
{
#region //从文件中读取图片
FileStream fs = new FileStream(@"D:\i\2017年资料\SPC\SPC\30.jpg", FileMode.Open, FileAccess.Read);
byte[] imagebytes = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));
SqlConnection mycn = new SqlConnection("server=192.168.1.14;database=fengyp;uid=sa;pwd=");
mycn.Open();
SqlCommand com = new SqlCommand("insert into dbo.试验图片存取 values(10,@ImageList)", mycn);

        com.Parameters.Add("ImageList", SqlDbType.Image);

        com.Parameters["ImageList"].Value = imagebytes;

        com.ExecuteNonQuery();

        mycn.Close();
                     #endregion

                    #region   //从picturebox中读取图片 
                     //将Image转换成流数据,并保存为byte[] 
        MemoryStream mstream = new MemoryStream();
        pictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
        byte[] bytes = new Byte[mstream.Length];
        mstream.Position = 0;
        mstream.Read(bytes, 0, bytes.Length);
        mstream.Close();
                    SqlConnection mycn = new   SqlConnection("server=192.168.1.14;database=fengyp;uid=sa;pwd=");
        mycn.Open();

SqlCommand com = new SqlCommand("insert into dbo.试验图片存取 values(11,@ImageList)", mycn);

"ImageList""ImageList"#endregion//从数据库读取图片并还原private void button2_Click(object sender, EventArgs e)

    bytenull//打开数据库new"server=192.168.1.14;database=fengyp;uid=sa;pwd="new"select 图片 from dbo.试验图片存取 where 序号=10"whilebyte0newnew,如需转载请自行联系原作者
相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
21小时前
|
SQL 关系型数据库 Apache
Microsoft SQL Server 迁移到 PostgreSQL 利器:Babelfish
Babelfish for PostgreSQL 加速了将 Microsoft SQL Server 应用程序迁移到 PostgreSQL 的旅程。Babelfish for PostgreSQL 是一个开源项目,可在 Apache 2.0 和 PostgreSQL 许可下使用。它使 PostgreSQL 能够理解来自 Microsoft SQL Server 编写的应用程序的查询。Babelfish 了解 SQL Server 有线协议和 Microsoft SQL Server 查询语言 T-SQL,此您不必切换数据库驱动程序或重新编写所有应用程序查询。
160 0
|
9天前
|
SQL 数据库 数据安全/隐私保护
SQL Server 数据操控,视图和索引
SQL Server 数据操控,视图和索引
63 0
|
9天前
|
SQL 数据库
SQL Server 数据查询
SQL Server 数据查询
58 0
|
9天前
|
SQL 数据库
SQL Server 连接查询和子查询
SQL Server 连接查询和子查询
52 0
|
9天前
|
SQL 数据库
SQL Server 单表数据查询
SQL Server 单表数据查询
68 1
|
9天前
|
SQL 数据库
SQL Server 创建和管理数据表
SQL Server 创建和管理数据表
24 1
|
9天前
|
SQL Go 数据库
SQL Server创建及修改表实验报告(下)
SQL Server创建及修改表实验报告(上)
16 0
|
9天前
|
SQL 数据库 Python
SQL Server创建及修改表实验报告(上)
SQL Server创建及修改表实验报告
25 1
|
9天前
|
SQL 存储 Go
SQL Server 创建与管理数据库实验报告
SQL Server 创建与管理数据库实验报告
17 1
|
19天前
|
SQL 关系型数据库 分布式数据库
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
379 6
推荐文章
更多