如何使用 C# 在 MYSQL 中插入和检索图像
Posted
技术标签:
【中文标题】如何使用 C# 在 MYSQL 中插入和检索图像【英文标题】:How to insert and retrieve images in MYSQL using C# 【发布时间】:2015-05-14 14:54:51 【问题描述】:有没有办法使用 phpMyAdmin 和 XAMPP 在 mysql 数据库中插入和检索图像(图片本身)?我正在使用 C#。
private void button1_Click(object sender, EventArgs e)
//this button will save my pic from the picturebox to the database
String strAddress = " Data Source = 127.0.0.1; Initial Catalog= ex; user id = root; password= ''";
MySqlConnection sqlConn = new MySqlConnection(strAddress);
MySqlCommand sqlcomm = new MySqlCommand();
sqlConn.Open();
sqlcomm.CommandText = "INSERT INTO ta VALUES(" + pictureBox1.Image + "')";
sqlcomm.CommandType = CommandType.Text;
sqlcomm.Connection = sqlConn;
sqlcomm.ExecuteNonQuery();
sqlConn.Close();
MessageBox.Show("RECORD SAVED!", "SAVING", MessageBoxButtons.OK, MessageBoxIcon.Information);
private void button2_Click(object sender, EventArgs e)
//this will put an image in the picturebox
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "Open Image";
//dlg.Filter = "bmp files (*.bmp)|*.bmp";
if (dlg.ShowDialog() == DialogResult.OK)
pictureBox1.Image = System.Drawing.Image.FromFile(dlg.FileName);
dlg.Dispose();
【问题讨论】:
这是一个相当宽泛的问题,你有没有尝试过任何事情,在谷歌上搜索过答案? Stack Overflow 是针对特定问题的,而不是如何编写整个应用程序。 ***.com/help/dont-ask 欢迎来到 Stack Overflow。我们可以回答您在编程时遇到的具体问题。您应该使用您的代码的 Minimally-Complete-Verifiable-Example 向我们展示您尝试过的内容以及问题所在。 @GreenChili 说了什么。此外,您正在寻找的概念是 BLOB——二进制大对象。 为什么还要在 MYSQL 中存储图像? 我尝试搜索代码或最接近的代码,但失败了。顺便说一句,这不是我的整个应用程序,只是其中的一部分。我试图在这里发布它,因为我找不到任何答案。 【参考方案1】:您可以将实际图像存储在数据库中,但这确实是不可取的。
将图像存储在目录中,并在数据库中存储对图像的引用(例如图像的路径)。
图像可能非常大,并且会占用数据库中不必要的空间。
【讨论】:
我知道这个方法,但是我们的教授说使用数据库来存储图片:/ 这不能回答 OP 的问题。【参考方案2】:我认为将图像存储在数据库中并不是一个好主意。但是,如果这是您的要求,那么您可以执行类似的操作
using (MySqlConnection conn = new MySqlConnection("Your Connection String"))
string myQuery = "SELECT IMAGE FROM SOMETABLE";
using(MySqlCommand cmd = new MySqlCommand(myQuery, conn))
conn.Open();
using(var reader = new cmd.ExecuteReader())
someVariable = (byte[])reader["IMAGE"];
这是假设您的数据库中有一个数据类型为BLOB
的列。您还需要安装Install-Package MySql.Data
包
【讨论】:
感谢您的回答。我会试试看。 :) 告诉我们您的进展情况 菜鸟问题,为什么你的方法和我的不一样? 你关心哪一部分? 在我上面的代码中,我使用了 String strAddress = " Data Source = 127.0.0.1; Initial Catalog= ex; user id = root; password= ''"; MySqlConnection sqlConn = new MySqlConnection(strAddress); MySqlCommand sqlcomm = new MySqlCommand(); sqlConn.Open(); sqlcomm.CommandText = "INSERT INTO TA VALUES(" + pictureBox1.Image + "')"; sqlcomm.CommandType = CommandType.Text; sqlcomm.Connection = sqlConn; sqlcomm.ExecuteNonQuery(); sqlConn.Close();以上是关于如何使用 C# 在 MYSQL 中插入和检索图像的主要内容,如果未能解决你的问题,请参考以下文章
如何从 MySQL 数据库中存储和检索图像并使用 Php 将其显示在 html 中? [复制]
Android:无法从mysql数据库中检索图像URL并将其显示在imageView中