如何将 PictureBox 图像保存和检索到 Sql Server 数据库 Varbinary(Max) 列 VB.NET

2024-02-15

在我的Windows应用程序中,我必须在Windows窗体PictureBox中显示图像,该图像将通过OpenFile对话框浏览,然后将PictureBox图像保存到Sql Server 2008 R2 Varbinary(Max)列并显示保存在Sql Server 2008 R2 Varbinary(Max)列中的图片使用 VB.NET 2010 到 PictureBox。

我使用以下代码将图片从物理驱动器加载到 PictureBox

    Private Sub btnPicBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPicBrowse.Click
    With Me.OpenFileDialog1
        .FileName = ""
        .Filter = "Image Files(*.BMP;*.JPG;*.JEPG;*.GIF)|*.BMP;*.JPG;*.JEPG;*.GIF|All files (*.*)|*.*"
        .RestoreDirectory = True
        .ValidateNames = True
        .CheckFileExists = True
        If .ShowDialog = Windows.Forms.DialogResult.OK Then
            Me.PictureBox1.Image.Dispose()
            Me.PictureBox1.Image = System.Drawing.Image.FromFile(.FileName)
            Me.lblPicPath.Text = .FileName
        End If
    End With
End Sub

现在我必须将此图像保存到 SQL SERVER 2008 数据库 VarBinary (MAX) 列,然后使用 VB.NET 2010 将 Sql Server 2008 R2 Varbinary(Max) 列中保存的图片显示到 PictureBox。

感谢和问候

乔蒂莫伊


不久前在 youtube 上发现了一些很酷的方法,您创建一个函数来接收图片并将其转换为字节并将其保存到 SQLServer DB 中的字节,当您检索它时它将显示在图片框中。这是实现它的代码,并告诉我它是否有效...如果它确实投票给我的答案,请:

 Public Function ConvertImage(ByVal myImage As Image) As Byte()

    Dim mstream As New MemoryStream
    myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)

    Dim myBytes(mstream.Length - 1) As Byte
    mstream.Position = 0

    mstream.Read(myBytes, 0, mstream.Length)

    Return myBytes

End Function


因此,如果您使用存储过程进行保存,只需将图片框中的图像作为参数传递,例如 pictureBox User.Image

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 PictureBox 图像保存和检索到 Sql Server 数据库 Varbinary(Max) 列 VB.NET 的相关文章

  • SQL查询;水平到垂直

    我遇到了涉及将水平行转换为垂直行的 SQL 查询 SQL Server 以下是我的数据 No Flag 1 Flag 2 Flag 3 A 1 2 3 B 4 1 6 转换后 该表应为 No FlagsName Flag value A F
  • 在 SQL Server 中实现一对零或一关系

    我正在使用 Entity Framework 4 1 数据库第一种方法 我使用过旧数据库 在我的 edmx 文件中 它根据旧数据库中的表创建实体类 有一个一对零或一某些实体之间的关联 尽管我探索了数据库表以及它们之间的关系 但我不知道如何一
  • MS SQL 2008 如何读取日志

    我有一个有很多行的表 有什么办法可以找出来当插入具体行时 我没有创建 更新时间列 Thanks 检查日志以读取此类信息可以在单个日志条目的基础上完成 但该格式仍然没有记录 而且解码起来确实不容易 我只会出于纯粹的兴趣或取证目的而查看它 如果
  • 在 SQL 中搜索 xml 列中的多个值

    这是我的桌子 BasketId int BasketName varchar BasketFruits xml 1 Gold
  • 如何使用 XQuery 将值列表从 XML 提取到行中?

    我有一个 XQuery 如下 DECLARE x XML SELECT x
  • 查找 SSIS 包上次修改/部署日期 - SQL Server

    我想通过执行 SQL 查询找到 SSIS 包的最后修改日期 例如 下面的查询按降序返回过程的最后修改日期 我期待对 SSIS 包进行同样类型的查询 可以从DB获取这些信息吗 select name create date modify da
  • 声纳+MS SQL数据库

    我正在尝试使用 mssql 服务器数据库初始化声纳 但我不能 使用 Microsoft SQL Server Management Studio 我创建了用户名 sonar 和密码 sonar 的用户 并向同时创建的 sonar 数据库授予
  • 通过 SQL 中的查询显示组中的非聚合列

    我在 SQL 2008 中有一个表 ID Items 1 A 1 B 2 C 3 D 3 B 我想得到的结果是 ID Items 1 A B 2 C 3 B D 我使用了游标 但它大大减慢了过程 我可以使用按查询分组或通过任何其他方式实现上
  • 触发器和行版本控制信息

    在什么情况下表触发器会导致在行末尾添加 14 个字节以进行行版本控制 数据行中使用的空间 部分在本页 http msdn microsoft com en us library ms175492 aspx明确指出 每个数据库行可以在行末尾使
  • SQL Server 2008 XPath

    我们尝试根据我们提供的值过滤一组 XML 我们的数据库的 XML 字段中有以下 XML 如果传递数字 5052095050830 我们需要在 XML 中找到这个特定节点 我们提供的号码可能存在任意多次 任何机构都可以提供一些 SQL 示例来
  • 在 SQL Server 数据库之间传递用户定义的表类型

    我在 SQL Server 的一个数据库中有一个用户定义的表类型 我们称之为DB1 我的类型的定义非常简单 仅包含 2 列 创建我的类型的脚本如下 CREATE TYPE dbo CustomList AS TABLE ID int Dis
  • 数据转换器 SSIS 数据流组件中相应列的转换数据类型应该是什么?

    我们的一台服务器上有普通的 Microsoft SQL Server 2008 我们决定在文件系统上创建 DTSX 文件 以便我们可以使用 BIDS 2008 打开 DTSX 文件 一种 SSIS 控制流组件 它从 Microsoft SQ
  • 如何在sql server中对行号进行内连接

    SQL Server 2008 两张表 表A有以下数据 RowA RowB RowC RowD 表B有以下数据 Row4 Row3 Row2 Row1 我想得到以下输出 RowA Row1 RowB Row2 RowC Row3 RowD
  • 如何搜索表中的所有列?

    如何在 SQL Server 中搜索表的所有列 SELECT FROM yourtable WHERE val IN field1 field2 field3 field4 如果您正在寻找精确的全场比赛 如果你正在寻找子字符串匹配 你将不得
  • Oracle 删除约束级联等效于 Sql Server

    在Oracle中 删除约束PK SAI我使用语法 ALTER TABLE SAISIE DROP CONSTRAINT PK SAI CASCADE SQL Server 中与此等效的是什么 您正在考虑与实际 DELETE 语句相关的 FO
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • T-SQL 是否可以通过单个快速操作进行更新/插入

    假设我有一个表 我想插入一行 新行的键可能已经与表中现有行的键匹配 在这种情况下我想更新现有行 或者 它可能不存在于表中 在这种情况下应插入新行 执行此类操作最有效的方法是什么 我想先做一个SELECT 也许与EXISTS 查看是否存在特定
  • SQL。 SP 或函数应计算周五的下一个日期

    我需要编写一个存储过程来返回给定日期的下周五日期 例如 如果日期是 05 12 2011 那么它应该返回下周五日期 05 13 2011 如果您通过 05 16 2011 那么它应该返回日期是 5 20 2011 星期五 如果您将星期五作为
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 如何在sql server 2008R2中将单个单元格拆分为多个列?

    我想将每个名称拆分为各个列 create table split test value integer Allnames varchar 40 insert into split test values 1 Vinoth Kumar Raj

随机推荐