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

扛着MM逛超市

扛着MM逛超市

2016-01-29 12:53

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

数据库表结构:
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; }
展开更多 50%)
分享

猜你喜欢

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

电脑网络
CSharp读写SQL Server数据库中的Image列

从SQL Server中读写大数据列

电脑网络
从SQL Server中读写大数据列

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server数据库检修

SQLServer
SQL Server数据库检修

SQL Server数据库导入MySQL数据库体验

MySQL mysql数据库
SQL Server数据库导入MySQL数据库体验

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server 数据库中关于死锁的分析

SQLServer
SQL Server 数据库中关于死锁的分析

SQL Server数据库技术(02)

SQLServer
SQL Server数据库技术(02)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Microsoft.UI.WebControl.TreeView控件的扩充使用

Microsoft.UI.WebControl.TreeView控件的扩充使用

为DataGrid中的行增加序号

为DataGrid中的行增加序号
下拉加载更多内容 ↓