簡體   English   中英

當記錄確實存在時,無法將“System.DBNull”類型的對象轉換為“System.Byte[]”類型

[英]Unable to cast object of type 'System.DBNull' to type 'System.Byte[]' when record does exist

我試圖從 MYSQL 讀取和下載 BLOB。 即使記錄存在,但我仍然不斷收到此錯誤。 以下是我的代碼:

this.Time = String.Format("{0:HH:mm:ss}", DropDownList1.SelectedValue);
            String query = "Select * from event where time='" + this.Time + "'";
            MySqlConnection conn = new MySqlConnection(connection);
            MySqlCommand cmd = new MySqlCommand(query, conn);
            String time = String.Format("{0:t}", DateTime.Today);
            conn.Open();
            MySqlDataReader r = cmd.ExecuteReader();   
            while (r.Read())
            {
                TextBox1.Text = r["name"].ToString();
                TextBox2.Text = r["Proposedby"].ToString();
                bytes = (byte[])r["proposalDoc"];    
                TextBox5.Text = Calendar1.SelectedDate.ToString("d");
                TextBox6.Text = r["time"].ToString();
                TextBox7.Text = r["Society"].ToString();
                TextBox8.Text = r["venue"].ToString();

            }

請告訴我如何消除這個錯誤。

可能是該記錄存在但錯誤告訴您proposalDoc為db null。 所以靈魂將是檢查它是否是 db null 像這樣:

if(!Convert.IsDBNull(r["proposalDoc"]))
{
    bytes = (byte[])r["proposalDoc"];
}

!string.IsNullOrEmpty(r["proposalDoc"].ToString())?(byte[])r["proposalDoc"] : null

暫無
暫無

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

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