CSharp读写SQL Server数据库中的Image列

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

数据库表结构:

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'Content' AND type = 'U')

DROP TABLE Content

GO

create table Content

(

--内容ID

Id bigint IDENTITY(1,1) NOT NULL,

--内容

data image default null,

CONSTRAINT PK_ContentId PRIMARY KEY CLUSTERED (Id)

)

GO

const String cnnstr = "Provider=SQLOLEDB.1;User ID=sa;Password=;Initial Catalog=MyDb;Data Source=(local)";

写入

public bool WriteContent(byte [] data)

{

OleDbConnection conn = new OleDbConnection(cnnstr);

String mySelectQuery = "insert into Content(data)values(?)";

OleDbCommand myCommand = new OleDbCommand(mySelectQuery, conn);

myCommand.CommandTimeout = 60;

OleDbParameter param = new OleDbParameter("@data", OleDbType.VarBinary, data.Length);

param.Direction = ParameterDirection.Input;

param.Value = data;

myCommand.Parameters.Add(param);

bool ret = false;

try

{

conn.Open();

myCommand.ExecuteNonQuery();

ret = true;

}

catch(Exception e)

{

String msg = e.Message;

}

finally

{

//关闭数据库连接

if((conn != null) && (conn.State != ConnectionState.Closed))

{

conn.Close();

}

}

return ret;

}

读出

private byte [] ReadContent(Int64 contentId)

{

byte [] buff = null;

OleDbConnection conn = new OleDbConnection(cnnstr );

String queryStr = String.Format("select data from Content where Id={0}", contentId);

OleDbCommand myCommand = new OleDbCommand(queryStr, conn);

myCommand.CommandTimeout = 60;

OleDbDataReader reader = null;

long dataLen = 0L;

try

{

conn.Open();

reader = myCommand.ExecuteReader();

if( reader.Read() )

{

//得到要读的数据长度,注意buff必须是空的引用

dataLen = reader.GetBytes(0, 0, buff, 0, 1);

//分配缓冲区

buff = new byte[dataLen];

//读数据

dataLen = reader.GetBytes(0, 0, buff, 0, (int)dataLen);

}

}

catch(Exception e)

{

internalError(e);

String msg = e.Message;

}

finally

{

//关闭数据集

if(reader != null && !reader.IsClosed)

reader.Close();

//关闭数据库连接

if((conn != null) && (conn.State != ConnectionState.Closed))

{

conn.Close();

}

}

return buff;

}

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