SQL Server:存储图像和BLOB文件(三)
2008-04-14 09:54:30 来源:WEB开发网语句的第一行设置了与SQL Server的连接。“Integrated Security”表示使用Windows安全登录,而不是SQL ID登录。接下来打开到数据库的连接。启动该数据库之后,接下来的两行语句用来创建一个SQL指令对象:
SqlCommandobjCmd=newSqlCommand("WebUp",objConn);
objCmd.CommandType=CommandType.StoredProcedure;
“WebUp”是之前创建的存储过程的名称。将该存储过程绑定到开放的数据库连接,然后会告诉SQL指令对象,“WebUp”是一个存储过程,而不是T-SQL文本语句。该存储过程要求传递一个单一的参数,也就是要插入的图像。参数创建如下面的语句。“paramFileData”名称可以取任何名称,没什么特别要注意的,不过对于Parameters.Add,“@FileData”必须和存储过程中的参数名称匹配。
SqlParameter paramFileData = objCmd.Parameters.Add("@FileData", SqlDbType.VarBinary);
有了参数以后,就可以指定上传方向了:
paramFileData.Direction = ParameterDirection.Input;
任何传递到SQL Server的数据都是Input的指令类型,输出的数据将是ParameterDirection.Output。
我们设想的理想状态是,现在FileUpload控件应当将图像直接传递给存储过程参数,不过这是行不通的。相反,我们要创建一个可输入图像大小的字节数组:
byte[] bImage = new byte[FileUpload1.PostedFile.ContentLength];
紧接着,创建一个流对象指向图像内容:
Stream objStream = FileUpload1.PostedFile.InputStream;
最后,流将图像传递给上面的字节数组:
objStream.Read(bImage, 0, FileUpload1.PostedFile.ContentLength);
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接