我有一个带有表格的数据库"产品"在它和这个表中有一个名为" 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();
}
答案 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();
}