0

テーブル「製品」を含むデータベースがあり、このテーブルには「PackingPicture」odタイプの画像というフィールドがあります。画像を含むレコードの詳細をロードするフォームがあります。画像ファイルのパスをテキストボックスにロードする方法はありますか? 私がこれをしたい理由は、このフォームでSQL更新クエリを使用してレコードを更新できるようにしたいからです。画像かどうかに関係なく、このフォームに入力されたデータを更新できるようにしたいと考えています。データベースから画像を取得する際にファイル パスを取得する方法はありますか? または、ファイル パスを指定せずに画像自体を保存する方法があれば、教えていただければ幸いです。

データを取得するための私のコード:

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();
}
4

2 に答える 2

1

イメージはメモリとデータベースには存在しますが、特定のイメージ ファイルには存在しないため、ファイル パスはありません。したがって、次のようにして保存する必要があります。

pictureBox1.Image.Save("c:\\path\\to\\image.gif", ImageFormat.Gif); // you have to know your image format
于 2013-08-14T07:57:01.147 に答える