从SQL Server中读写大数据列

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

/*

Author:Wu Xiuxiang;

Email:imessage@126.com

*/

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

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航