有人可以告诉我使用vb.net在SQL Server数据库中存储和检索图像的最简单方法。
非常重要的考虑要求:
嗯,vb.net中的应用程序似乎有一个可以由局域网计算机访问的数据库,因此一旦另一台计算机应用程序从服务器请求数据库,SQL Server 2005数据库就允许远程计算机共享其数据库。
因此,每台其他计算机都必须在SQL Server 2005中存储和检索图像。例如,comp1必须将拍摄的图像存储到服务器中并像tableadapter一样检索它。
我正在使用绑定和tableadapter将详细信息存储在数据库中并从db中检索信息。如果您有代码或任何适用于我的内容,请在此处发布...
请与我分享如何存储图像并通过vb.net检索SQL Server,前提是还有共享SQL Server数据库的LAN计算机。
如果有人对这些东西有所了解,我会非常感激。
我全心全意地请求您考虑我的问题。
最诚挚的问候,
Hosseinel
答案 0 :(得分: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
从DB获取文件:
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
我认为对于tableadapters,您的数据表将包含类型为Byte()的列。