我有一个非常基本的表单,只有一个图片框,一个文本字段和一个按钮。我在Oracle中创建了一个用于存储blob的表,我希望在单击按钮后将该图像加载到c#中的图片框中。这是我到目前为止所写的内容。
我的图片框名称=“picBoxXray”。我的文本框名称=“txtXrayId”。我的按钮名称=“btnGetXrayID”。我的表名是“XRay”。
private void btnGetXrayID_Click(object sender, EventArgs e)
{
if (txtXrayId.Text == "")
{
MessageBox.Show("XrayID be entered");
}
if (picBoxXray.Image != null)
{
picBoxXray.Image.Dispose();
}
string connectionString = GetConnectionString();
using (OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = connectionString;
connection.Open();
Console.WriteLine("State: {0}", connection.State);
Console.WriteLine("ConnectionString: {0}",
connection.ConnectionString);
OracleCommand command = connection.CreateCommand();
string sql = "SELECT * FROM XRay WHERE XrayID =" + txtXrayId.Text;
OracleCommand cmd = new OracleCommand(sql, connection);
OracleDataReader dr = cmd.ExecuteReader();
cmd.CommandType = CommandType.Text;
dr = cmd.ExecuteReader();
while (dr.Read())
{
// Obtain the image
//Need code
}
command.CommandText = sql;
command.ExecuteNonQuery();
connection.Close();
}
任何帮助都会受到极大的抨击, 感谢
答案 0 :(得分:0)
您必须从流中创建图像,例如:
public Image ByteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
然后将图像分配到图片框。 byteArray in是你从db读取的blob。当然,图像必须以已知的格式存储(例如png / jpeg)