从SQL Server中读写大数据列。

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

从SQL Server中读写大数据列。

从SQL Server中读写大数据列。 /*

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- 王朝網路 版權所有 導航