簡體   English   中英

如何檢查我是否有來自 SQL 服務器數據庫的圖像或不使用 C#

[英]How can I check if I have an image from my SQL Server database or not using C#

我有一個 Winforms 應用程序,它存儲來自客戶的產品。 這些產品可以有一個圖像來描述它們。

我的問題是,當我想更改我的產品信息時,出現以下異常:

System.InvalidCastException:'不可能在“System.Byte []”類型中轉換“System.DBNull”類型的 object

我知道發生此異常是因為我的數據庫中沒有圖像,但我想知道如何檢查圖像是否存在。

我的代碼:

private void chargeImage()
{
    SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["db"].ConnectionString);

    SqlCommand com1 = new SqlCommand("SELECT * FROM [dbo].[Product] WHERE RFID = '" + dataview.SelectedRows[0].Cells[0].Value.ToString() + "'", con);   // Charge image

    con.Open();

    SqlDataReader dr = com1.ExecuteReader();

    if (dr.Read())
    { 
        byte[] picArr = (byte[])dr["image"];
        ms = new MemoryStream(picArr);
        ms.Seek(0, SeekOrigin.Begin);
        pictureBox1.Image = Image.FromStream(ms);
    }

    con.Close();
}

您可以檢查它是否不是 DBNull。

byte[] picArr = (byte[])dr["image"];

你可以檢查

if (!Convert.IsDBNull(dr["image"]))

您可以檢查它們是否包含 null 值:

byte[] picArr = dr.IsDBNull("image")? null: (byte[])dr["image"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM