2016-04-15 84 views
-2

我有一個小問題,但我需要你的幫助。我已經成功地將圖片插入數據庫,因此我試圖通過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

您提供的代碼沒有任何地方指定'DateTime'類型裏面。錯誤發生在哪裏? – Steve

+0

我知道這是我混淆 – Brownsugar

+1

'(byte [])dt.Rows [0] [1];'我懷疑你使用了錯誤的列。 – Hendry

回答

0

這裏是你如何把它放在一個PictureBox

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); 
} 
相關問題