私はC#.Net WindowsフォームでMicrosoft Accessデータベースに挿入するイメージを変換しようとしています。 また、私は画像を削除して変更したい。 しかし、私はそれを行う方法を知らない。 私のためのコードセグメントを書いてください。Microsoft Accessデータベースにイメージを挿入するには?
1
A
答えて
3
私は画像をバイト[]に変換します。その後、バイト[]を画像に戻します。
public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
public static Image ImageFromByte(byte[] image)
{
ImageConverter ic = new ImageConverter();
Image img = (Image)ic.ConvertFrom(image);
return img;
}
0
次のリンクがお手伝いします:これは...
を助けusing (FileStream fs = fi.OpenRead())
{
bData = new byte[fi.Length];
int nReadLength = fs.Read(bData,0, (int)(fi.Length));
}
希望:
の変換は、上記のリンクの次の行になります
0
using (var connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BlankDatabase.mdb"))
{
connection.Open();
// Create table
using (var command = connection.CreateCommand())
{
command.CommandText = @"
CREATE TABLE FileTable (
FileName VARCHAR(255),
File IMAGE)
";
command.ExecuteNonQuery();
}
var imageContent = File.ReadAllBytes(@"C:\logo.png");
// upload image to the table
using (var command = connection.CreateCommand())
{
command.CommandText = @"
INSERT INTO FileTable (FileName, File)
VALUES (@FileName, @File)
";
command.Parameters.AddWithValue("@FileName", "Logo");
command.Parameters.AddWithValue("@File", imageContent);
command.ExecuteNonQuery();
}
// retreive image from the table
using (var command = connection.CreateCommand())
{
command.CommandText = @"
SELECT File
FROM FileTable
WHERE FileName = 'Logo'
";
var readImageContent = (byte[])command.ExecuteScalar();
File.WriteAllBytes(@"C:\logo1.png", readImageContent);
}
// alter image from the table
using (var command = connection.CreateCommand())
{
command.CommandText = @"
UPDATE FileTable
SET File = @File
WHERE FileName = 'Logo'
";
command.Parameters.AddWithValue("@File", imageContent);
command.ExecuteNonQuery();
}
// delete image from the table
using (var command = connection.CreateCommand())
{
command.CommandText = @"
DELETE FROM FileTable
WHERE FileName = 'Logo'
";
command.ExecuteNonQuery();
}
}
このコードでは、BlankDatabase.mdb
は空のMS Accessデータベースファイルです。
私を助けてください。あなたの助けが必要です。 – Saya