0

有人可以告诉我使用 vb.net 在 SQL Server 数据库中存储和检索图像的最简单技术。

一个非常重要的考虑要求:

嗯,vb.net 中的应用程序似乎有一个可以由 LAN 计算机访问的数据库,因此 SQL Server 2005 数据库允许远程计算机在其他计算机应用程序从服务器请求数据库时共享其数据库。

因此,每台其他计算机都必须在 SQL Server 2005 中存储和检索图像。例如,comp1 必须将获取的图像存储到服务器中并像 tableadapter 一样检索它。

我正在使用绑定和表适配器将详细信息存储在数据库中并从数据库中检索信息。如果您有代码或任何对我有用的东西,请在此处发布...

如果有局域网计算机也共享 SQL Server 数据库,请与我分享如何通过 vb.net 存储图像和检索 SQL Server。

拜托,如果有人知道这方面的知识,我将不胜感激。

我全心全意地请求您考虑我的问题。

此致,

侯赛内尔

4

1 回答 1

1

让我们有一个包含图像的表格(而不是您可以使用所需大小的最大值):

CREATE TABLE dbo.STORED_IMAGES
     (
     ID int NOT NULL  IDENTITY (1, 1),
     Img varbinary(MAX) NULL
     ) 

存储图像:

Dim CMD As New SqlClient.SqlCommand("insert into STORED_IMAGES(Img) values(@Img)",cn)
CMD.Parameters.Add("@Img", SqlDbType.VarBinary, Integer.MaxValue).Value = ReadFile(Path)

读取文件功能:

Private Function ReadFile(sPath As String) As Byte()
        Dim data As Byte() = Nothing
        Dim fInfo As New IO.FileInfo(sPath)
        Dim numBytes As Long = fInfo.Length
        Using fStream As New IO.FileStream(sPath, IO.FileMode.Open, IO.FileAccess.Read)
            Dim br As New IO.BinaryReader(fStream)
            data = br.ReadBytes(CInt(numBytes))
        End Using
        Return data
    End Function

从数据库获取文件:

Dim fcmd As New SqlCommand("select Img from STORED_IMAGES where ID=@ID", cn)
fcmd.Parameters.Add("@ID", SqlDbType.Int).Value = 3 'e.g.
Dim bytes As Byte() = fcmd.ExecuteScalar

我想使用表格适配器,您的数据表将包含字节()类型的列。

于 2012-04-23T09:57:54.003 回答