我做了一个C#应用程序,增加了影像从硬盘到BLOB字段在MySQL。 我不明白的错误和BLOB字段被填满。
当我在MySQL Workbench中检查BLOB字段,它说的领域是不正确的(它不能显示图像)。
无论我做什么,我尝试任何例子,似乎没有任何工作。 所以它没有指向这里放置任何示例代码,因为没有什么工作至今。
有没有人有一个很好的例子代码,我可以试试吗?
谢谢
我做了一个C#应用程序,增加了影像从硬盘到BLOB字段在MySQL。 我不明白的错误和BLOB字段被填满。
当我在MySQL Workbench中检查BLOB字段,它说的领域是不正确的(它不能显示图像)。
无论我做什么,我尝试任何例子,似乎没有任何工作。 所以它没有指向这里放置任何示例代码,因为没有什么工作至今。
有没有人有一个很好的例子代码,我可以试试吗?
谢谢
好吧,既然有人想显示一些代码,我创建了亚历克斯的链接描述的帮助下很简单的控制台应用程序。 我从字面上理解这些代码,并放置在控制台应用程序。 一些奇迹happend,因为它一旦担任我开始应用。 我不知道我做错了什么在主应用程序,但它要的东西(废话)。 下面是代码:
string MyConString = "SERVER=localhost;" +
"DATABASE=database;" +
"UID=root;" +
"PASSWORD=pass;";
System.IO.FileStream fs = new FileStream(@"D:\link\to\image.png", FileMode.Open);
System.IO.BufferedStream bf = new BufferedStream(fs);
byte[] buffer = new byte[bf.Length];
bf.Read(buffer, 0, buffer.Length);
byte[] buffer_new = buffer;
MySqlConnection connection = new MySqlConnection(MyConString);
connection.Open();
MySqlCommand command = new MySqlCommand("", connection);
command.CommandText = "insert into table(fldImage) values(@image);";
command.Parameters.AddWithValue("@image", buffer_new);
command.ExecuteNonQuery();
connection.Close();
Console.WriteLine("Task Performed!");
Console.ReadLine();
我发现与MySQL和.NET的工作时, MySQL连接使事情变得非常简单!
这家伙: 通过C#应用程序在MySQL中保存的图像似乎是正确的线路。
祝好运!
你尝试通过MySQL连接(您存储的方式),以恢复斑点。 MySQL工作台不显示图像并不意味着不被存储。
尝试恢复图像:
while (reader.read())
{
var image = (byte[])reader.getColumn(0);
File.WriteAllBytes(@"c:\image.extension", image);
}
这种方式可以确保它的储蓄。