将图像存储到数据库 blob;从数据库检索到 Picturebox

2023-11-26

您好,我之前发布了此内容并获得了一些帮助,但仍然没有有效的解决方案。感谢上一个问答,我确定我的“保存到数据库”代码以及“检索到图片”代码有问题。即使我手动将图片保存在数据库中,它仍然无法检索。这是我根据网络上的 3 或 4 个示例拼凑而成的代码。理想情况下,如果有人有一些已知的良好代码并且可以指导我使用它,那将是最好的。

    Dim filename As String = txtName.Text + ".jpg"
    Dim FileSize As UInt32
    Dim ImageStream As System.IO.MemoryStream

    ImageStream = New System.IO.MemoryStream
    PbPicture.Image.Save(ImageStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    ReDim rawdata(CInt(ImageStream.Length - 1))
    ImageStream.Position = 0
    ImageStream.Read(rawdata, 0, CInt(ImageStream.Length))
    FileSize = ImageStream.Length

    Dim query As String = ("insert into actors (actor_pic, filename, filesize) VALUES    (?File, ?FileName, ?FileSize)")
    cmd = New MySqlCommand(query, conn)
    cmd.Parameters.AddWithValue("?FileName", filename)
    cmd.Parameters.AddWithValue("?FileSize", FileSize)
    cmd.Parameters.AddWithValue("?File", rawData)

    cmd.ExecuteNonQuery()

    MessageBox.Show("File Inserted into database successfully!", _
    "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)

![在此输入图像描述][1]

'*****使用以下代码检索图片框:

  Private Sub GetPicture()
    'This retrieves the pictures from a mysql DB and buffers the rawdata into a memorystream 

    Dim FileSize As UInt32
    Dim rawData() As Byte

    Dim conn As New MySqlConnection(connStr)


    conn.Open()
    conn.ChangeDatabase("psdb")


    Dim cmd As New MySqlCommand("SELECT actor_pic, filesize, filename FROM actors WHERE actor_name = ?autoid", conn)
    Cmd.Parameters.AddWithValue("?autoid", Actor1Box.Text)

    Reader = cmd.ExecuteReader
    Reader.Read()

    'data is in memory 

    FileSize = Reader.GetUInt32(Reader.GetOrdinal("filesize"))
    rawData = New Byte(FileSize) {}

    'get the bytes and filesize 

    Reader.GetBytes(Reader.GetOrdinal("actor_pic"), 0, rawData, 0, FileSize)

    Dim ad As New System.IO.MemoryStream(100000)
    ' Dim bm As New Bitmap

    ad.Write(rawData, 0, FileSize)

    Dim im As Image = Image.FromStream(ad) * "error occurs here" (see below)
    Actor1Pic.Image = im


    Reader.Close()


    conn.Close()
    conn.Dispose()

    ad.Dispose()

好吧,自从没有得到帮助后,我就解决了这个问题,并最终让它发挥作用。这是我的工作代码。

从 Picturebox 中保存到 MySQL (pbPicture)

    Dim filename As String = txtName.Text + ".jpg"
    Dim FileSize As UInt32

    conn.Close()

    Dim mstream As New System.IO.MemoryStream()
    PbPicture.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
    Dim arrImage() As Byte = mstream.GetBuffer()

    FileSize = mstream.Length
    Dim sqlcmd As New MySqlCommand
    Dim sql As String
    mstream.Close()

    sql = "insert into [your table]  (picture, filename, filesize) 
                               VALUES(@File, @FileName, @FileSize)"

    Try
        conn.Open()
        With sqlcmd
            .CommandText = sql
            .Connection = conn
            .Parameters.AddWithValue("@FileName", filename)
            .Parameters.AddWithValue("@FileSize", FileSize)
            .Parameters.AddWithValue("@File", arrImage)

            .ExecuteNonQuery()
        End With
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        conn.Close()
    End Try

从 MySQL 数据库加载回到 Picturebox

   Dim adapter As New MySqlDataAdapter
    adapter.SelectCommand = Cmd

    data = New DataTable

    adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)

笔记!!只能在图片框中放入一张图片,因此显然此查询只能为您返回一条记录

    commandbuild = New MySqlCommandBuilder(adapter)
    adapter.Fill(data)

    Dim lb() As Byte = data.Rows(0).Item("picture")
    Dim lstr As New System.IO.MemoryStream(lb)
    PbPicture.Image = Image.FromStream(lstr)
    PbPicture.SizeMode = PictureBoxSizeMode.StretchImage
    lstr.Close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将图像存储到数据库 blob;从数据库检索到 Picturebox 的相关文章

  • 两个表之间可以有两种关系吗?

    有两个表 EMPLOYER 和 EMPLOYEE 由于每个 EMPLOYEE 都被分配给一个 EMPLOYER 因此他们之间存在 1 N 关系 简单的事情 但我也希望能够模拟一种情况 每个雇主都可以选择他的one最喜欢的员工 他最好什么也不
  • 从mysql数据库读取pdf文件

    我正在使用这个例子http www php mysql tutorial com wikis mysql tutorials uploading files to mysql database aspx http www php mysql
  • 图片框图像缩放

    我在 C 中遇到图像缩放问题 我有一个给定尺寸的图片框 例如宽度 800 像素 高度 600 像素 我正在将不同的图像加载到该图片框中 小图像 400x400 和大图像 800 x 600 如果我的图像不适合盒子 它们就会被调整大小 但他们
  • 为什么java字符串在MYSQL中不保存为UTF-8?

    message new String round id getBytes UTF 8 conn DriverManager getConnection jdbc mysql host db useUnicode true character
  • Genymotion 无法识别 SD 卡上的图像

    所以我一直在玩 Genymotion 喜欢使用它 但一直无法弄清楚如何将图像导入 Android Gallery 应用程序 因此我可以测试另一个应用程序 当前在 Galaxy Nexus 上运行 Android 4 3 尝试通过 adb 和
  • mysql - 如果日期不与现有日期重叠,则将日期范围插入日期列

    我有以下表结构 表名 available id autoincremetn acc id start date end date 1 175 2015 05 26 2015 05 31 2 175 2015 07 01 2015 07 07
  • 无法将代码优先迁移应用到 mysql 数据库

    我正在使用 EF 代码优先模型开发 asp net mvc 我正在尝试首先使用 EF 代码将迁移应用到我的项目中 我正在使用 MySql 数据库 目前我使用的是 EF 4 3 1 版本和 6 6 4 0 版本的 mysql Connecto
  • JS 无法查询 MySQL 数据库。错误:connection.query 不是函数

    尝试查询我的 mySQL 数据库 但我不能 因为我得到了TypeError connection query is not a function错误 有谁知道为什么吗 我不知道为什么会发生这种情况 数据库 js const fs requi
  • 我是否应该标准化我的数据库?

    在设计数据库 例如 MySQL 的模式时 会出现是否完全规范化表的问题 一方面 连接 以及外键约束等 非常慢 另一方面 您会获得冗余数据和潜在的不一致 最后优化 是正确的方法吗 即创建一个按书本规范化的数据库 然后查看可以对哪些内容进行非规
  • 在java中缩放多页TIFF图像

    我想更改多页 TIFF 图像的高度 因此我使用下面的代码片段来缩放它 但它只返回 tiff 文件的第一页 我猜它会将其转换为 JPEG 图像 如何保留文件的所有页面 public static byte scale byte fileDat
  • 如何用纯色填充位图?

    我需要使用唯一的 RGB 颜色创建 24 位位图 分辨率 100x100 像素 并将生成的图像保存到磁盘 我目前使用的是SetPixel http msdn microsoft com en us library 6c7eyzyb aspx
  • 如何使用Conda安装MySQLdb?

    我已经阅读了有关如何安装 MySQLdb 的几种不同的解释 但我不确定哪种情况适用于我 因为我的错误消息不同 我的系统似乎找不到 MySQLdb 我安装了 pymysql 但我需要导入 MySQLdb 才能使用该库中的过程 感谢您的帮助 c
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • 创建一个从系统托盘运行的程序

    我想创建一个从 Windows 右下角系统托盘运行的程序 但我不知道从哪里开始 有人可以告诉 告诉我在哪里查找和示例或使用什么命令 研究吗 Add a NotifyIcon到主窗口窗体 使用Resize事件在Form控制何时显示Notify
  • 尝试获取类型 LogWriter、键“”的实例时发生激活错误?

    我有 ASP NET 网站 我添加了参考Microsoft Practices EnterpriseLibrary Logging dll到该网站 在 web config 文件中 定义如下
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐

  • 过滤以特定关键字开头的字符串列表

    我怎样才能找到一个字符串 PartialWord 在列表 WordList 在 Python 2 7 中 PartialWord ab WordList absail rehab dolphin 使用通配符进行搜索 例如 ab 如果它以这些
  • Android TextView 对齐文本

    如何获取 a 的文本TextView是否合理 文本在左侧和右侧齐平 我找到了一个可能的解决方案here 但它不起作用 即使您将vertical center更改为center vertical等 我不相信 Android 支持完全合理 更新
  • MS Access 错误“ODBC——调用失败。转换规范的字符值无效 (#0)”

    有谁知道这个错误意味着什么或如何解决它 我使用的是 Access 2003 和 SQL2005 当尝试在特定子表单上添加记录时会出现它 Microsoft SQL Native Client 转换规范的字符值无效 0 此 MS 错误报告描述
  • 从另一个应用程序以编程方式打开 iOS 设置应用程序中的键盘设置屏幕

    我们如何以编程方式直接进入 iOS 设置应用程序的以下任何屏幕 UPDATE 正如其他用户指出的那样 此解决方案不再适用于 iOS10 如果有人知道如何使其在 iOS10 中运行 请告诉我们 iOS 要打开 您自己的应用程序的 设置 您可以
  • 运行 mocha 测试时 Babel 意外导入令牌

    其他相关问题中提供的解决方案 例如在 babelrc 中包含适当的预设 es2015 已在我的项目中实现 我有两个项目 我们称它们为 A 和 B 它们都使用 ES6 模块语法 在项目 A 中 我导入项目 B 该项目通过 npm 安装并位于
  • SQLite 与使用数字的表名有关的问题?

    我正在开发一个应用程序 它要求用户选择这样格式的年份1992 1993来自旋转器 表名也被命名为1992 1993这个想法是使用 SQL 通过这样的语句提取该表中的值选择 1992 1993 但是 当我运行模拟器时 它会抛出错误 如果我随后
  • 使用 Zend Framework 和 PHP 发送电子邮件

    我正在制作一个表单 当用户输入他们的电子邮件帐户并单击发送时 一封电子邮件将发送到他们的电子邮件帐户 我已经把一切都解决了 只是它不会将电子邮件发送到我的帐户 有人有主意吗 是否有我遗漏的配置或其他什么 这是我的控制器的示例 public
  • 覆盖 json.Marshal 使用的布局来格式化 time.Time

    在Golang中 有没有办法使通用encoding jsonMarshal 在编组时使用不同的布局time Time fields 基本上我有这个结构 s starttime time Now name ali 我想使用编码为 jsonen
  • 如何从 Windows 窗体连接到 MySQL?

    如何从 Windows 窗体连接到 MySQL 数据库 这里有大量连接字符串示例 http www connectionstrings com
  • GetProperties() 返回接口继承层次结构的所有属性

    假设以下假设的继承层次结构 public interface IA int ID get set public interface IB IA string Name get set 使用反射并进行以下调用 typeof IB GetPro
  • 如何将资源嵌入到 .NET PE 可执行文件中?

    如何在 Visual Studio 2010 的 NET PE 可移植可执行文件 中包含资源 In the 旧时光我们将创建一个资源脚本文件 wumpa rc jqueryjs RCDATA jquery js SplashLogo PNG
  • 主脑极小极大算法

    我正在尝试在 python 中实现 Donald Knuth 的密码破解算法 只需不超过 5 步 我已经多次检查了我的代码 它似乎遵循算法 如下所示 http en wikipedia org wiki Mastermind board g
  • GroupBy pandas DataFrame 并选择最常见的值

    我有一个包含三个字符串列的数据框 我知道第三列中唯一的一个值对于前两个值的每种组合都有效 为了清理数据 我必须按前两列对数据框进行分组 并为每个组合选择第三列的最常见值 My code import pandas as pd from sc
  • 使用 MySQL 将二进制转换为十进制

    我正在尝试在 MySQL 中构建一个查询 该查询连接一堆二进制字段 然后给出 DECIMAL 形式的结果 e g SELECT CONCAT setting1 setting2 setting3 AS settings 可能给了我 101
  • 为什么 onAppear() 当放置在 swiftUI 中的 NavigationView 内的元素上时会执行两次? (Xcode 12.0)

    FirstView Appeared被打印两次 当视图首次加载时一次 当选择 NavigationLink 时再次一次 import SwiftUI struct FirstView View var body some View Navi
  • Javascript .Replace 替代方案

    我正在为 eBay 编写一个模板 但是 eBay 不允许 replace 下面的代码用于翻转选项卡部分 当用户将鼠标悬停在选项卡 a 上时 相应的 div div a 变得可见 有没有一种解决方法可以让代码在不使用 replace 的情况下
  • 这个 O(N*k) 排序算法是什么?

    当工作 BrainF 最快的排序 我发现了这个算法 它是O N k 其中k是输入中的最大值 它需要 O N 额外的存储空间 物理上的类比是你有 N 堆令牌 栈的高度代表要排序的值 每个标记代表一个位 为另外 N 堆留出空间 您从每个有令牌的
  • 使用 R 从 XTS 对象中提取该月第一个工作日的回报

    我对 R 非常陌生 所以如果我在解释这个问题时出现任何术语错误 我深表歉意 我在 csv 文件中有一组每日退货数据 我已设法将其转换为 xts 对象 数据格式为 HighYield EUR MSCI World EUR 2002 01 31
  • 枚举的 XML 序列化

    我在序列化枚举值时遇到问题 这是代码 System Xml Serialization XmlRootAttribute Namespace IsNullable false public class REQUEST System Xml
  • 将图像存储到数据库 blob;从数据库检索到 Picturebox

    您好 我之前发布了此内容并获得了一些帮助 但仍然没有有效的解决方案 感谢上一个问答 我确定我的 保存到数据库 代码以及 检索到图片 代码有问题 即使我手动将图片保存在数据库中 它仍然无法检索 这是我根据网络上的 3 或 4 个示例拼凑而成的