-4

画像をスキャンする Windows アプリケーションを開発しました。画像をスキャンした後、ローカル マシンではなくデータベースに直接保存したいのですが、使用したコードは次のとおりです。

try
{
    String str = string.Empty;
    WIA.CommonDialogClass scanner;
    ImageFile imageObject;

    scanner = new CommonDialogClass();
    imageObject = scanner.ShowAcquireImage
        (WiaDeviceType.ScannerDeviceType, 
        WiaImageIntent.ColorIntent,
        WiaImageBias.MinimizeSize,
        ImageFormat.Jpeg.Guid.ToString("B"), 
        false, 
        true,
        true);

    str = DateTime.Now.ToString();
    str = str.Replace("/", "");
    str = str.Replace(":", "");
    Directory.CreateDirectory("D:\\scanned1");
    //            MessageBox.Show(string.Format("File Extension = {0}\n
    //\nFormat = {1}", imageObject.FileExtension, imageObject.FormatID));
    imageObject.SaveFile(@"D:\scanned1\lel" + str + ".jpg");
    MessageBox.Show("Scanning Done");
}
catch (Exception ex)
{
    MessageBox.Show("Please check if the scanner is connected properly.");
}

Dドライブに保存する代わりに、データベースに保存したい.....どうすればいいですか?Plz reply...

4

1 に答える 1

1

「ImageFile」が実際に何であるかはわかりませんが、それをバイト配列 (byte[]) に変換する方法があるはずです。その後、その配列をSQLのvarbinaryフィールドに挿入する必要があります。このようなもの:

using(SqlCommand cmd = new SqlCommand("INSERT INTO MyTable (myvarbinarycolumn) VALUES (@myvarbinaryvalue)", conn))
{
    cmd.Parameters.Add("@myvarbinaryvalue", SqlDbType.VarBinary, myarray.length).Value = myarray;
    cmd.ExecuteNonQuery();
}

ofc sqlcommand を開いて有効にする必要があります。myarray は byte[] 型です

于 2013-10-08T09:31:31.880 に答える