通过c#将图像添加到blob(mysql)

时间:2012-09-01 15:21:14

标签: c# mysql image blob

我已经制作了一个C#应用程序,它将硬盘中的图像添加到mysql中的blob字段中。我没有得到错误,blob字段已填满。

当我检查MySQL Workbench中的blob-field时,它表示该字段不正确(它无法显示图像)。

无论我做什么,无论我尝试什么样的例子,似乎都没有用。所以没有必要在这里放置任何示例代码,因为到目前为止还没有任何工作。

有没有人有我可以尝试的好示例代码?

由于

3 个答案:

答案 0 :(得分:3)

好的,因为有些人想要显示一些代码,所以我创建了一个非常简单的控制台应用程序,其中包含Alex链接中描述的帮助。我确实把这些代码放在了控制台应用程序中。 一些奇迹发生了,因为它在我启动应用程序时就会起作用。我不知道我在主应用程序中做错了什么,但它必须是(duh)。这是代码:

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();

答案 1 :(得分:1)

我发现在使用mysql和.NET时,MySQL Connector使事情变得非常简单!

这家伙:Save Image in MySQL via C# application似乎是正确的。

祝你好运!

答案 2 :(得分:0)

您是否尝试通过mysql连接器(存储方式)恢复blob。 MySQL Workbench不显示图像并不意味着没有存储。

尝试恢复图像:

while (reader.read())
{
    var image = (byte[])reader.getColumn(0);
    File.WriteAllBytes(@"c:\image.extension", image);
}

通过这种方式,您可以确保节省。