C#将图片存放到SQL SERVER数据库中的方法

本文实例讲述了C#将图片存放到SQL SERVER数据库中的方法。分享给大家供大家参考。具体如下:

第一步:

//获取当前选择的图片
this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile());
//获取当前图片的路径
string path = openFileDialog1.FileName.ToString();
//将制定路径的图片添加到FileStream类中
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
//通过FileStream对象实例化BinaryReader对象
BinaryReader br = new BinaryReader(fs);
//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组
byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length));

第二步:

//将图片添加到数据库中
string sql="insert into pic values(@pic)";
SqlParameter[] param = new SqlParameter[] { new SqlParameter("@pic", imgBytesIn) };
DBHelper.GetExecuteQuery(sql, param);

第三步:

//将图片从数据库中取出
string sql="select * from pic where id=0";
SqlDataReader reader = DBHelper.GetExecuteReader(sql, null);
MemoryStream mss = null;
if (reader.Read())
{
  byte[] bytes = (byte[])reader["pic"];
  mss = new MemoryStream(bytes);
}
this.pictureBox2.Image = Image.FromStream(mss);

希望本文所述对大家的C#程序设计有所帮助。

原文地址:https://www.cnblogs.com/linybo/p/10126807.html

时间: 2024-10-09 21:27:46

C#将图片存放到SQL SERVER数据库中的方法的相关文章

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

原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类.BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中.主要代码如下: private void button1_Click(object sender, EventArgs e)

如何将Sql server数据库中的模型图转化到Word中--并能够查看字段的属性信息

1. 在Sql server数据库中创建数据库的模型图 -- Database Diagrams 2. 控制面板--管理工具--ODBC数据源链接--创建一个Sql server的数据源链接 3. 打开Visio工具,打开数据库模型--Database--Reverse Engineer[反向工程] 选择要导入到Visio中的表: 4. 将DB的表结构导入到Visio中,界面可能需要略微调整一下 可以在Visio中查看字段的详细信息 将Visio保存成一个文件. 5.打开Word,插入对象 将V

SQL server数据库中的DateTime类型出现的问题

我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经常用到的一种数据类型,而C#语言中也有DateTime类型,虽然二者都是用来描述时间的,但是它们的默认值是不同的,这点必须注意,在开发过程中,二者之间相互适应关系处理不当,可能会产生不必要的麻烦,就等于浪费时间,所以记住.举个例子看看: 创建一个windows应用程序,创建一个用户信息实体类UserInfo.代码如下: 注意的是:用户信息类中的“操作日期”属性是日期类型. 再创建一个业务操作类,UserInfoOp

sql server数据库中索引失效的问题讨论

有关于数据库中索引失效的问题,网上也有相关的讨论.不过他们是针对oracle数据库进行讨论的.那么在sql server数据库中索引什么时候 会失效呢.总结了一下,不过我没有经过测试.没测试就没有发言权,这里仅供自己参考. 首先,所谓失效.并不真的就是这个索引被删除了.而是在这些情况下,DBMS不会检索索引列表了.执行速度和没有这个索引时的速度一样. 但是再执行另外的一条语句.同样索引可以正常起作用.所以索引的失效是针对某条sql语句的,而不是针对索引本身的.那么在哪些情况下, 确切的说是在哪类

浅析SQL Server数据库中的伪列以及伪列的含义

SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述.这里主要是提到的RowId引起了一点思考.那么,这个RowId是个什么玩意?能不能更加直观一点来看看RowId的信息?代表什么含义?这个当然也是可以的.Oracle中的表中有一个伪列的概念,就是在查询表的时候加上select rowid,* from Table,会查询出

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]

C#同步SQL Server数据库中的数据 1. 先写个sql处理类: using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Text; namespace PinkDatabaseSync { class DBUtility : IDisposable { private string Server; private string

SQL Server数据库中还原孤立用户的方法集合

SQL Server数据库中还原孤立用户的方法集合 虽然SQL Server现在搬迁的技术越来越多,自带的方法也越来越高级. 但是我们的SQL Server在搬迁的会出现很多孤立用户,微软没有自动的处理. 因为我们的数据库权限表都不会在应用数据库中,但是每次对数据库作迁移的时候,单个数据库却带着它的数据库用户对象. 并且我们在新的数据库机器上也不能登录这些账号,但是它却静悄悄的存在我们的数据库中. 微软以前提供的一个老的接口存储过程来处理这个问题. sp_change_users_login 将

sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度

smallint  是一种精确的数值数据类型,其精度在算术运算后不变,采用2个字节编码 有符号的 smallint 值的范围是 -2^15-------2^15 -1,即 -32768 ----32767 无符号的 smallint 值的范围是 0-------2^16 -1,即 0----65535, int 数据类型存储为 4字节整数,取值范围 -2^31---2^31,所以在考虑最大数据范围的前提下,优先考虑使用smallint类型. 在int 数据类型支持范围的数字常量仍被解释为nume