2016-04-15 24 views
-2

私は小さな問題がありますが、私はあなたの助けが必要です。私は正常に画像をDBに挿入したので、私はDataGridViewを通してそれらの画像にアクセスしようとしています。 dgv行/セルをクリックするたびに、画像が画像ボックスに表示される必要があります。ここに私のコードです。DataGridViewのデータベースから画像を表示

SqlConnection con = new SqlConnection(ConnectionString); 
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Candidates WHERE CandidateID = '" + dataGridViewCandidate.SelectedRows[0].Cells[0].Value.ToString() + "'", con); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
//dataGridViewCandidate.DataSource = dt; 
byte[] binaryimage = (byte[])dt.Rows[0][1]; 
Bitmap image; 
using (MemoryStream stream = new MemoryStream(binaryimage)) 
{ 
    image = new Bitmap(stream); 
} 
EmployeePhoto.Image = image; 

エラーは以下のとおりです。

入力する 'のSystem.DateTime' タイプのオブジェクトをキャストできません 'System.Byteは[]'

はあなたの助けをいただき、ありがとうございます。ここで

+0

の内側にそれを置く方法です。エラーはどこで発生しますか? – Steve

+0

私はそれが私が混乱していることを知っています – Brownsugar

+1

'(byte [])dt.Rows [0] [1];'あなたが間違った列を使用していると思われます。 – Hendry

答えて

0

はあなたのPictureBoxあなたが提供されているコードはどこにでも `DateTime`タイプを指定していない

SqlCommand cmd = new SqlCommand("SELECT Image FROM tableName",yourConnectionStringHere); 
DataSet ds = new DataSet(); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
da.fill(ds); 
foreach(DataRow dr in ds.Tables[0].Rows) 
{ 
    Byte[] data = new Byte[0]; 
    data = (Byte[])(dr["ImageColumnName"]); 
    MemoryStream ms= new MemoryStream(data); 
    yourPictureBoxID.Image= Image.FromStream(ms); 
} 
関連する問題