WEB开发网
开发学院数据库MSSQL Server SQL Server:存储图像和BLOB文件(三) 阅读

SQL Server:存储图像和BLOB文件(三)

 2008-04-14 09:54:30 来源:WEB开发网   
核心提示: 语句的第一行设置了与SQL Server的连接,“Integrated Security”表示使用Windows安全登录,SQL Server:存储图像和BLOB文件(三)(3),而不是SQL ID登录,接下来打开到数据库的连接,相反,我们要创建一个可输入图像大小的

语句的第一行设置了与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);

上一页  1 2 3 4  下一页

Tags:SQL Server 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接