1
データベースからdataGridViewにデータをロードしようとしていますが、行が選択されてもレコードは他のコントロールに表示されますが、正常に動作しますが、特に画像列にnull値がある場合、 「トンは何をすべきか知っている次のデータベースからの画像を含むデータをDataGridViewに読み込むには?
ここにあります私のテーブル構造:ここで
TABLE TblProduct
[ProductID] INT IDENTITY (1, 1) NOT NULL,
[ProductType] INT NOT NULL,
[Description] NVARCHAR (MAX) NULL,
[Price] MONEY NULL,
[Image] IMAGE NULL,
だ私の取得()メソッド:
private void Retrieve()
{
dataGridView1.Rows.Clear();
string sql = "SELECT * FROM TblProduct";
cmd = new SqlCommand(sql, connection);
connection.Open();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
dataGridView1.Rows.Add(row[0].ToString(), row[1].ToString(), row[2].ToString(), Convert.ToDecimal(row[3]), row["Image"]);
}
connection.Close();
dt.Rows.Clear();
}
はここに私のMouseClickとイベントです:
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
typeTxt.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
descriptionTxt.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
priceTxt.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
pictureBox1.Image = (Image)dataGridView1.SelectedRows[0].Cells["Image"].Value;
}
はここで画像
System.InvalidCastException: 'Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'.'
を持って、あなたは何の画像
System.InvalidCastException: 'Unable to cast object of type 'System.DBNull' to type 'System.Drawing.Image'.'
申し訳ありませんが、私はforeachループに入れ、この例外が発生します。System.ArgumentOutOfRangeException: 'インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。 パラメータ名:index ' –
私は間違った場所に置いていました。私はMouseClickイベントに入れました。今すぐ動作します。ありがとうございましたJan –
ようこそ。それがあなたのために働く場合は、質問を閉じることを忘れないでください。ありがとう! –