无法将类型为"System.Byte"的对象转换为类型"System.String"。



我正在尝试将值从数据库填充到Combobox,当我运行它时出现此错误:

无法将类型为"System.Byte"的对象转换为类型"System.String"。

Status属于tinyint型。

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;
}
}

当 SQL Servertinyint在 .NET 中转换为byte时,您需要这样读取它,然后转换为字符串:

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

我找到了错误的来源。本能

string name = saReader.GetString(0);

我只是将这一行替换为这一行

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

相关内容

最新更新