从mysql中检索图像并设置为pictureBox C#
Posted
技术标签:
【中文标题】从mysql中检索图像并设置为pictureBox C#【英文标题】:Retrieve image from mysql and set to pictureBox C# 【发布时间】:2022-01-12 04:24:00 【问题描述】:我正在尝试从我的数据库中检索数据并使用文本更改将其设置为文本框和图片框。
这是我的代码:
private void textBox1_TextChanged(object sender, EventArgs e)
string sqlstring = "database = db_phonebook; user = root; password = ''; server = 'localhost'; SSL Mode = None";
mysqlConnection mysqlcon = new MySqlConnection(sqlstring);
MySqlCommand mysqlcom;
MySqlDataReader mdr;
mysqlcon.Open();
string selectquery = ("SELECT* FROM tbl_phonebook WHERE CID LIKE '" + this.textBox1.Text + "%'");
mysqlcom = new MySqlCommand(selectquery, mysqlcon);
mdr = mysqlcom.ExecuteReader();
if (mdr.Read())
cid.Text = mdr.GetString("CID");
name.Text = mdr.GetString("Name");
address.Text = mdr.GetString("Address");
contact.Text = mdr.GetString("Contact_Number");
email.Text = mdr.GetString("Email_Address");
photobox.Image = mdr.("Photo"); /// this line is the error it says "cannot implicitly convert type 'string' to 'System.Drawing.Imaging'
else
MessageBox.Show("Record Not Found!");
mysqlcon.Close();
如何解决“无法将类型 'string' 隐式转换为 'System.Drawing.Imaging' 或者是否有另一种方法可以在图片框中显示数据库中的图像
【问题讨论】:
tbl_phonebook 表中照片列的数据类型是什么? 请考虑对查询使用参数化,因为从文本框输入构建字符串可能会导致 SQL 注入 dev.mysql.com/doc/connector-net/en/… 这里已经有 很多 篇文章精彩地说明了如何从 blob 转换为图像。 你能分享一个值的例子吗?它们是 URL 还是什么? 你的查询将受到 sql 注入攻击 【参考方案1】:假设您的 photobox
对象是 PictureBox
并且您的数据库存储了图像的链接或路径,而不是设置 .Image 属性调用其 Load 方法,该方法将设置图像位置并加载它:
photobox.Load(mdr.GetString("Photo"));
【讨论】:
在此处阅读更多关于 Load() 方法的信息docs.microsoft.com/en-us/dotnet/api/… 我试过 photobox.Load(mdr.("Photo"));但它说它应该有一个标识符 你能提供异常消息/堆栈跟踪吗? 您是否确认在您的应用程序的工作目录中有一个名为picture.jpg 的文件? 我已将答案更新为使用GetString
以上是关于从mysql中检索图像并设置为pictureBox C#的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何从屏幕空间坐标转换为 WinForms PictureBox 中的图像空间坐标?