从SQL Server中读写大数据列

从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();
  
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值