2

ハードディスクから mysql の blob フィールドに画像を追加する C# アプリケーションを作成しました。エラーは発生せず、ブロブ フィールドはいっぱいです。

MySQL Workbench で blob-field を確認すると、フィールドが正しくありません (画像を表示できません) と表示されます。

私が何をしようとも、どんな例を試しても、何もうまくいかないようです。したがって、これまでのところ何も機能していないため、ここにサンプル コードを配置しても意味がありません。

私が試すことができる良いサンプルコードを持っている人はいますか?

ありがとう

4

3 に答える 3

3

さて、一部の人々はいくつかのコードを表示したいと思ったので、私はAlexのリンクで説明されているヘルプを使用して非常に単純なコンソールアプリケーションを作成しました。私は文字通りそのコードを取り、コンソールアプリに配置しました。アプリを起動するとすぐに機能したため、いくつかの奇跡が起こりました。メインアプリケーションで何が間違っていたのかわかりませんが、それは何かである必要があります(ええと)。コードは次のとおりです。

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();
于 2012-09-02T12:09:18.557 に答える
0

mysql と .NET を使用していると、MySQL コネクタによって作業が非常に簡単になることがわかりました。

この男:C#アプリケーションを介してMySQLに画像を保存することは正しい行にあるようです。

幸運を!

于 2012-09-01T15:31:03.707 に答える
0

mysql コネクタ (保存方法) を介して BLOB を回復しようとしましたか。MySQL Workbench で画像が表示されないからといって、画像が保存されていないわけではありません。

イメージの回復を試みます。

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

これにより、確実に保存できます。

于 2012-09-01T15:27:20.960 に答える