正文

将资料以二进制方式存入MsSql数据库2008-02-20 21:13:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/32811.html

分享到:

将资料以二进制方式存入MsSql数据库

[日期:2007-11-23] 来源:asp.net魔法学院  作者:佚名 [字体: ]

这个范例示范了如何将档案存入资料库中的 Image 栏位及如何由 Image 栏位取出该档案。

假设资料表 Tb_File 有 ID,ExcelFile 两个栏位,ID 栏位型态为Integer,ExcelFile 栏位型态为 Image,先加入一笔记录,ID=1,ExcelFile=Null,范例中将Excel档案利用Update写入ID=1的记录中及由此记录读取 Image栏位内容并储存成档案。

 

   
 ’’’ <summary>      
 ’’’ 读取档案内容写入Buffer中。      
 ’’’ </summary>      
 Function FileToBuffer(ByVal FileName As String, ByRef Buffer() As Byte) As Boolean     
     Dim oFileStream As System.IO.FileStream      
      
     If Not System.IO.File.Exists(FileName) Then     
         Return False     
     End If     
      
     ’开启档案为读取状态      
     oFileStream = System.IO.File.OpenRead(FileName)      
      
     ’将档案读入 Buffer 中      
     ReDim Buffer(oFileStream.Length)      
     oFileStream.Read(Buffer, 0, oFileStream.Length)      
      
     oFileStream.Close()      
     Return True     
 End Function     
      
 ’’’ <summary>      
 ’’’ 将 Buffer 的内容写入档案中。VB.NET专题站点      
 ’’’ </summary>      
 Function BufferToFile(ByVal FileName As String, ByVal Buffer() As Byte) As Boolean     
     Dim oFileStream As System.IO.FileStream      
      
     Try     
         If System.IO.File.Exists(FileName) = False Then     
             ’ Create the file.      
             oFileStream = System.IO.File.Create(FileName)      
             oFileStream.Close()      
         End If     
      
         ’开启档案为写入状态      
         oFileStream = System.IO.File.OpenWrite(FileName)      
     
        ’将 Buffer 写入档案中      
        oFileStream.Write(Buffer, 0, Buffer.Length)      
      
         oFileStream.Close()      
         Return True     
     Catch     
         Return False     
     End Try     
 End Function     
      
 ’Button1 Click 将档案存入资料库中的 Image 型别的栏位'www.wewill.cn   
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click      
     Dim sConnStr As String = String.Empty      
     Dim cn As New SqlClient.SqlConnection()      
     Dim cmd As New SqlClient.SqlCommand()      
     Dim param As SqlClient.SqlParameter      
     Dim sSQL As String = String.Empty      
     Dim Buffer() As Byte = Nothing     
      
     If Not FileToBuffer("C:\test1.xls", Buffer) Then Exit Sub     
      
     sConnStr = "Data Source=localhost;Initial Catalog=CHIComm;Integrated Security=True"     
     cn.ConnectionString = sConnStr      
     cn.Open()      
      
     sSQL = "Update Tb_File Set ExcelFile=@ExcelFile Where ID=1"     
     
     cmd = New SqlClient.SqlCommand(sSQL, cn)      
     param = New SqlClient.SqlParameter("@ExcelFile", SqlDbType.Image)      
     param.Value = Buffer      
     cmd.Parameters.Add(param)      
     cmd.ExecuteNonQuery()      
      
     cmd = Nothing     
     cn.Close()      
     cn = Nothing     
 End Sub     
      
 ’Button2 Click 读取资料库的 Image 型别栏位并储存成档案      
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click      
     Dim sConnStr As String = String.Empty      
     Dim cn As New SqlClient.SqlConnection()      
     Dim cmd As New SqlClient.SqlCommand()      
     Dim sSQL As String = String.Empty      
     Dim dr As SqlClient.SqlDataReader      
     Dim Buffer() As Byte = Nothing     
      
     sConnStr = "Data Source=localhost;Initial Catalog=CHIComm;Integrated Security=True"     
     cn.ConnectionString = sConnStr      
    cn.Open()      
      
     sSQL = "Select ExcelFile From Tb_File Where ID=1"     
     cmd = New SqlClient.SqlCommand(sSQL, cn)      
      
     dr = cmd.ExecuteReader()      
     dr.Read()      
     Buffer = dr.Item("ExcelFile")      
     BufferToFile("C:\test2.xls", Buffer)      
 End Sub    

阅读(2273) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册