簡體   English   中英

無法將“System.Byte”類型的 object 轉換為“System.String”類型。

[英]Unable to cast object of type 'System.Byte' to type 'System.String'.'

我正在嘗試將值從數據庫填充到Combobox ,當我運行它時出現此錯誤:

無法將“System.Byte”類型的 object 轉換為“System.String”類型。

Statustinyint類型。

public void FillStatus()
{
    try
    {
        using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DesignSaoOsig1;Integrated Security=True"))
        {
            conn.Open();
            string query = "SELECT DISTINCT Status FROM tblZaposleni_AD";
            SqlCommand cmd = new SqlCommand(query, conn);
            using (SqlDataReader saReader = cmd.ExecuteReader())
            {
                while (saReader.Read())
                {
                    string name = saReader.GetString(0);
                    ddlStatus.Items.Add(name);
                }
            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}

我找到了錯誤的來源。 代替於

string name = saReader.GetString(0);

我只是將這一行替換為這一行

 string name = saReader.GetByte(0).ToString();

由於 SQL Server tinyint在 .NET 中被轉為byte ,所以需要這樣讀取,然后轉為字符串:

byte dbValue = saReader.GetByte(0);
string name = dbValue.ToString();
ddlStatus.Items.Add(name);

暫無
暫無

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

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