使用Visual Studio访问数据库中的图像
本文关键字:图像 数据库 访问 Visual Studio 使用 | 更新日期: 2023-09-27 18:17:03
我正试图从visual studio获得Access数据库的图片这是我的代码:
var DBPath = Application.StartupPath + "''Bd.mdb";
Console.Write("Ruta: " + Application.StartupPath);
conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;"+"DataSource=" + DBPath);
conn.Open();
OleDbCommand cmd = new OleDbCommand(" SELECT * from Bono", conn);
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable("dt");
da.Fill(dt);
if (dt != null)
{
sorteo = (string)dt.Rows[0]["Sorteo"];
fecha = (DateTime)dt.Rows[0]["Fecha"];
labelFecha.Text = fecha.Day.ToString() + "/" + fecha.Month.ToString() + "/" + fecha.Year.ToString();
byte[] data = (byte[])dt.Rows[0]["Imagen"];
MemoryStream ms = new MemoryStream();
ms.Write(data, 0, data.Length);
ms.Position = 0;
Lista.Image = Image.FromStream(ms,false);
}
,但是它给了我这个异常:类型为'System '的未处理异常。ArgumentException"System.Drawing.dll在排队:Lista。
如果您查看FromStream
的文档,您将看到它抛出ArgumentException
的唯一两个原因是如果您传入的流为空(这对您的情况是不可能的)或流中的字节不代表有效的图像格式。
检查您正在读取的数据是有效的图像,将内容保存到使用File.WriteAllBytes("someFileName", data)
的文件中,并尝试使用图像查看器打开它。
Image.FromStream
方法需要一个Stream参数,但是您提供了一个MemoryStream参数。因此参数exception error