データベースから画像をロードするコードがあり、画像ボックスにそのコードが表示されます。問題は、列にピクチャがない場合、エラーが発生しますが、データベースでNULLを許可するイメージの列としてマークされています。画像の列がnullの可能性があるデータベースから画像をロードする
private void button1_Click(object sender, EventArgs e)
{
sql = new SqlConnection(@"Data Source=PC-PC\PC;Initial Catalog=Test;Integrated Security=True");
cmd = new SqlCommand();
cmd.Connection = sql;
cmd.CommandText = ("select Image from Entry where EntryID [email protected]");
cmd.Parameters.AddWithValue("@EntryID", Convert.ToInt32(textBox1.Text));
var da = new SqlDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds, "Images");
int count = ds.Tables["Images"].Rows.Count;
if (count > 0)
{
var data = (Byte[])(ds.Tables["Images"].Rows[count - 1]["Image"]);
var stream = new MemoryStream(data);
pictureBox1.Image= Image.FromStream(sream);
}
}
エラーは何ですか? – zimdanen
'sream'はタイプミスですか、あるいは2つの異なるストリーム(' sream'と 'var stream ...')がありますか? –
'system.dbnull'型のオブジェクトを 'system.byte []'と入力するとキャストできません – aliprogrammer