2013-04-14 199 views
3

我希望如果用戶不設置圖像爲picturebox保存empy圖像在表中。如何將空圖像添加到表

我的代碼是:

byte[] arrImage; 
if (picperson.Image != null) 
{ 
    //convert image to byte 
    MemoryStream ms = new MemoryStream(); 
    picperson.Image.Save(ms, picperson.Image.RawFormat); 
    arrImage = ms.GetBuffer(); 
    ms.Close(); 
} 
else arrImage = null; 

objcommand.Parameters.AddWithValue("@picture", arrImage); 
時,他補充道空圖像

,上線picperson.Image.Save(MS,picperson.Image.RawFormat)發生異常;

如何在表格中添加空白圖像?


+0

選擇任何圖像,並添加它,當你需要添加null ...簡單! – Shaharyar

+0

好悲傷......我不知道這個人在說什麼。我知道我英文不好,但仍然。 「但是當我想補充錯誤」......這是什麼意思? – LightStriker

+0

表格大小變高!!! – anfd

回答

1

你不能爲你的圖像參數傳遞一個空值,所以周圍的工作將是一個零字節數組發送:

if (picperson.Image != null) { 
    //convert image to byte 
} else { 
arrImage = new byte[0]; 
} 

不幸的是,這將不設置現場空值。

設置字段爲空值可能會被用一個單獨的查詢最好的處理,例如:

using (SqlCommand q = new SqlCommand("INSERT INTO M (MyImage) VALUES (null)", cn) 
... 

不使用參數。

就閱讀一些評論而言,聽起來像圖像格式需要指定。嘗試使用你想要保存圖像的實際格式:

picperson.Image.Save(ms, ImageFormat.Bmp); 
// or 
picperson.Image.Save(ms, ImageFormat.Jpeg); // or Png, etc. 
+0

此代碼正常工作,但是當我想要在datagridview錯誤中看到表格時。 – anfd

+0

@anfd這聽起來像是一個新問題。請嘗試發佈適當的文檔,如錯誤消息,並且如果可能的話,請提供足夠的代碼,以便讀者能夠理解手頭的問題。當然,先試着研究它是否已經解決了這個問題。 – LarsTech