C# SQLserver数据库图片存取

   #region 数据库图片存取
        /// <summary>
        /// <strong><span style="color:#ff0000;">导入图片到数据库</span></strong>
        /// </summary>
        /// <param name="filePath"></param>
        public void Import(string filePath)
        {
            string fileName = filePath.Substring(filePath.LastIndexOf(@"\")+1, filePath.LastIndexOf(".")-filePath.LastIndexOf(@"\")-1);
            FileStream fileStream = new FileStream(filePath, FileMode.Open);
            byte[] imageBytes = new byte[fileStream.Length];
            BinaryReader binaryReader = new BinaryReader(fileStream);
            imageBytes = binaryReader.ReadBytes(Convert.ToInt32(fileStream.Length));

            SqlConnection sqlConnection = new SqlConnection(@"data source=PANLEE-PC\MSSQLSERVER_2;initial catalog=DBImage;integrated security=true");
            sqlConnection.Open();
            SqlCommand sqlCommand=new SqlCommand();
            sqlCommand.Connection = sqlConnection;
            try
            {
                string sqlCreate = @"Create Table Portraits(
                                   学号 varchar(50),
                                   照片 image,
                                   )";
                sqlCommand.CommandText = sqlCreate;
                sqlCommand.ExecuteNonQuery();
            }
            catch { }

            sqlCommand.CommandText= "insert into Portraits (学号, 照片) values(@ID,@Image)";
            sqlCommand.Parameters.Add("Image", SqlDbType.Image);
            sqlCommand.Parameters.Add("ID", SqlDbType.VarChar);
            sqlCommand.Parameters["ID"].Value = fileName;
            sqlCommand.Parameters["Image"].Value = imageBytes;
            sqlCommand.ExecuteNonQuery();
            sqlConnection.Close();
        }

        /// <summary>
        //<strong>/<span style="color:#ff0000;">导出图片</span></strong>
        /// </summary>
        /// <param name="SID"></param>
        /// <returns>bitmap</returns>
        public Bitmap Export(string SID)
        {
            byte[] imagebytes = null;
            SqlConnection sqlConnection = new SqlConnection(@"data source=PANLEE-PC\MSSQLSERVER_2;initial catalog=DBImage;integrated security=true");
            sqlConnection.Open();
            SqlCommand sqlCommand = new SqlCommand("select 照片 from Portraits where 学号[email protected]", sqlConnection);
            sqlCommand.Parameters.Add("ID", SqlDbType.VarChar);
            sqlCommand.Parameters["ID"].Value = SID;
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
            while (sqlDataReader.Read())
            {
                imagebytes = (byte[])sqlDataReader.GetValue(0);
            }
            sqlDataReader.Close();
            sqlCommand.Clone();
            sqlConnection.Close();
            MemoryStream ms = new MemoryStream(imagebytes);
            Bitmap bitmap = new Bitmap(ms);
            return bitmap;
        }
        #endregion

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 16:55:39

C# SQLserver数据库图片存取的相关文章

转载:SqlServer数据库性能优化详解

本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使用之间(如联机事务处理 (OLTP) 与决策支持)权衡. 对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题.许多使性能得

(转)对SQLSERVER数据库事务日志的疑问

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLSERVER了 实验环境:SQLSERVER2005 SP4,Windows7 本来没什么心情写文章,反正没人看,关于我文章中提到的问题,有些可以从文章结尾的MSDN补充那里找到答案,而有些还没有答案 根据CSDN博客的这篇文章介绍,大家可以先看一下,然后再继续往下看,因为下面会引用到CSDN博客里的

SQLServer数据库查询优化建议

虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源

SQLServer数据库之入门知识

SQLServer数据库相关知识点1.为什么要使用数据库?数据库技术是计算机科学的核心技术之一.使用数据库可以高效且条理分明地存储数据.使人们能够更加迅速.方便地管理数据.数据库具有以下特点:·可以结构化存储大量的数据信息,方便用户进行有效的检索和访问·可以有效地保持数据信息的一致性.完整性,降低数据冗余·可以满足应用的共享和安全方面的要求2.数据库的基本概念⑴什么是数据?数据就是描述事物的符号记录,数据包括数字.文字.图形.声音.图像等:数据在数据库中以"记录"的形式存储,相同格式和

SQLServer 数据库结构

一.数据库的组成 在SQL Server 2008中,用户如何访问及使用数据库,就需要正确了解数据库中所有对象及其设置.数据库就像一个容器,它里面除了存放着数据的表之外,还有视图.存储过程.触发器.约束等数据库对象.数据库管理的核心任务包括创建.操作和维护数据库. 二.数据库文件及其文件组 数据库的存储结构分为逻辑存储结构和物理存储结构. 逻辑存储结构:说明数据库是由哪些性质的信息所组成.SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中. 物理存储结

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

JavaWeb程序连接SQLserver数据库

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1:在http://www.microsoft.com/en-us/download/details.aspx?id=21599下载sqljdbc.jar的压缩包 2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下 3:需要知道一些数据库方面的技术知识: 先举个例子

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面的一个提示 直接点是就可以了. 在这个类中,首先定义一个连接对象 private SqlConnection conn = null;然后定义下面三个函数 private void SetConnection()//初始化连接对象 { if (conn == null) { //获取配置文件中的数据

web应用下sqlserver数据库ip地址无法连接问题。

刚装了sqlserver数据库,但是在myeclipse进行数据的增删改查时出现了数据库ip地址无法连接的问题,经过查找发现了问题所在.具体解决办法是: 1.打开sqlserver的配置管理器 2.仔细观察,我发现MSSQLSERVER目录下的tcp/ip协议是被禁用状态,右击选择打开协议 3.接下来在SQL SERVERS服务下对SQL SERVERS(MSSQLSERVER)重新启动. 4.然后tcp/ip协议就启动了,并且我们能知道数据库的端口号.