從SQL Server中讀寫大資料列。

來源:互聯網
上載者:User

 

 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();
   
 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.