C#获取图像框中图像的文件路径

时间:2013-08-14 07:53:13

标签: c#

我有一个带有表格的数据库"产品"在它和这个表中有一个名为" PackingPicture" od型图像。我有一个表单,我加载包括图像的记录详细信息。 有没有办法将图像文件路径加载到文本框? 我想这样做的原因是我希望能够使用此表单中的sql update查询更新记录。我希望用户能够更新此表单中的任何数据,无论它是否是图像。有没有办法从数据库中检索图像时获取文件路径? 或者,如果有一种方法可以在没有文件路径的情况下保存图片,我很高兴知道。

我的检索数据代码:

public void getData(string brand, string product)
{
    DataTable dt = new DataTable();
    Connection c = new Connection();
    SqlCommand sqlCmd = new SqlCommand("SELECT * FROM tblProduct WHERE productNumber = @Product and brandNumber=@brand", c.con);
    SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);

    c.con.Open();
    sqlCmd.Parameters.AddWithValue("@brand", brand);
    sqlCmd.Parameters.AddWithValue("@Product", product);
    sqlDa.Fill(dt);
    SqlDataReader dr = sqlCmd.ExecuteReader();

    if (dt.Rows.Count > 0)
    {
        comboBox2.Text = dt.Rows[0][0].ToString(); 
        //Where ColumnName is the Field from the DB that you want to display
        textBox1.Text = dt.Rows[0][1].ToString();
        textBox2.Text = dt.Rows[0][2].ToString();             
    }

    while (dr.Read())
    {
        byte[] img = (byte[])(dr["PackingPicture"]);              
        if (img == null)
            pictureBox1.Image = null;
        else
        {
            MemoryStream stream = new MemoryStream(img);
            pictureBox1.Image = System.Drawing.Image.FromStream(stream);  
        }
    }

    c.con.Close();
}

2 个答案:

答案 0 :(得分:1)

没有文件路径,因为图像存在于内存和数据库中,但不存在于任何特定的图像文件中。因此你需要保存它,你可以这样做:

pictureBox1.Image.Save("c:\\path\\to\\image.gif", ImageFormat.Gif); // you have to know your image format

答案 1 :(得分:1)

  

有没有办法在从中检索图像时获取文件路径   数据库?

如果您尚未保存文件路径,则无法检索不存在的内容。

  

或者,如果有一种方法可以自己保存图片   文件路径

分配到图片框后,您可以将图片保存在图片框中,如

pictureBox1.Image.Save("yourfilepath", yourformat);

或者您可以通过流

保存它
using(MemoryStream stream = new MemoryStream(img))
{
   FileStream fs = File.OpenWrite("yourfile");
   fs.Write(stream.ToArray());
   fs.Close();
}