从SQL Server中读写大数据列

原创 2006年05月18日 17:51:00

从SQL Server中读写大数据列

public static void Main()
 {
   //写入大对象到SqlServer
   FileStream fs   = new FileStream("C://test.bmp",FileMode.OPen,FileAccess.Read);
   BinaryReader br = new BinaryReader(fs);

   SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=sa;database=northwind");

   string cmdText = "UPDATE EMPLOYEES" +
         "SET Photo=@image where EmployeeId=1";
  
   SqlCommand cmd = new SqlCommand(cmdText,conn);
   cmd.Parameters.Add("@image",SqlDbType.Image);

   cmd.Parameters["@image"].Value = br.ReadBytes((int)br.BaseStream.Length);

   conn.Open();
   int i=cmd.ExecuteNoQuery();


   //从SQL Server中读取大对象
   string cmdtext = "SELECT employeeid,photo" +
          " from employees where employeeid = 1";
  
 
  SqlCommand cmd2 = new SqlCommand(cmdtext,conn);

  FileStream rfs;
  BinaryWriter rbw;

  long numread;
  long startIndex;
  int buffSize=4096;
  byte[] buff = new byte[buffSize];

  conn.Open();
  SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
 
  if(rdr.Read())
  {
     int empid = rdr.GetInt32(0);

     fs = new FileStream("c://mypic.bmp",FileMode.OpenOrCreate,FileAccess.Write);
     bw = new BinaryWrite(fs);
    
     startIndex=0;

     numread = rdr.GetBytes(1,startIndex,buff,0,buffSize);

     while(numread==buffSize)
     {
         bw.Write(buff);
         bw.Flush();
         startIndex+=buffSize;
         numread = rdr.GetBytes(1,startIndex,buff,buffSize);
     }
     bw.Write(buff);
     bw.Flush();
    
     bw.Close();
     fs.Close(); 
  }
  rdr.Close();
  conn.Close();
  
 }

 

sql处理百万级以上的数据提高查询速度的方法

处理百万级以上的数据提高查询速度的方法:  1.应尽量避免在 where 子句中使用!=或  2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立...
  • zhengyiluan
  • zhengyiluan
  • 2016年06月14日 14:39
  • 13340

批量高效向sqlserver中插入数据

原文:http://blog.csdn.net/tjvictor/article/details/4360030  表值参数是SQL Server 2008新特性,简称TVPs   代...
  • zy0421911
  • zy0421911
  • 2016年09月13日 11:47
  • 1320

SqlServer批量导入C#100万条数据仅4秒附源码

SqlServer批量导入
  • u012728728
  • u012728728
  • 2016年12月22日 13:39
  • 2896

SQL Server存储引擎 - 01. 数据库如何读写数据

一. 数据读写流程简要 SQL Server作为一个关系型数据库,自然也维持了事务的ACID特性,数据库的读写冲突由事务隔离级别控制。无论有没有显示开启事务,事务都是存在的。流程图如下: ...
  • saga_gallon
  • saga_gallon
  • 2016年08月04日 09:55
  • 309

DbHelper 操作SQL Server、Oracle、Access、Excel、CSV五种数据源+ Xml文件读写

编译环境:VS2008+Win7 数据源: SQL Server 2005,Oracle 10g,Access 2003,Excel 2003,CSV,Xml 功能: 查看所有数据:读取数...
  • daxiang12092205
  • daxiang12092205
  • 2012年08月21日 20:11
  • 2668

c++从SQL SERVER中读写数据、删除数据

初学SQL--c++ SQL SERVE 数据库读写 都是网上一些大神写好的,汇总一下,形成一个从原理到应用的完整的流程,对于初学数据库的人有一定的借鉴意义。 一:背景知识: (1)ODBC(Open...
  • a5476466661
  • a5476466661
  • 2016年10月22日 15:56
  • 2952

SQL server 在大数据中随机取数

Summary: The authors offer new ideas on how to select random rows from a large table. (4 printed pag...
  • luby
  • luby
  • 2013年10月15日 09:17
  • 2078

SQL Server DBA调优---大数据量查询记录数优化及原理探讨

本文来自: http://blog.csdn.net/justdb/article/details/23033291 问题描述   生产库中一张表的数据10亿级别,另一张表数据100亿级...
  • ren6370
  • ren6370
  • 2017年06月15日 16:28
  • 152

SQL Server DBA调优日记(一)——大数据量查询记录数优化及原理探讨

SQL Server DBA调优日记第一篇,大数据量查询记录数优化及原理探讨。现象、解决、模拟、原理探讨。...
  • Wentasy
  • Wentasy
  • 2014年04月06日 17:12
  • 9906

SQL Server 大数据搬迁之文件组备份还原实战

.本文所涉及的内容(Contents) 本文所涉及的内容(Contents)背景(Contexts)解决方案(Solution)搬迁步骤(Procedure)搬迁脚本(SQL Codes)注意事...
  • dz45693
  • dz45693
  • 2014年04月04日 17:16
  • 1751
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从SQL Server中读写大数据列
举报原因:
原因补充:

(最多只允许输入30个字)