我试图将值从数据库填充到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;
}
}
答案 0 :(得分:0)
我找到错误的来源。装有
###################################
# replacement for numpy.unique with option axis=0
###################################
def cupy_unique_axis0(array):
if len(array.shape) != 2:
raise ValueError("Input array must be 2D.")
sortarr = array[cupy.lexsort(array.T[::-1])]
mask = cupy.empty(array.shape[0], dtype=cupy.bool_)
mask[0] = True
mask[1:] = cupy.any(sortarr[1:] != sortarr[:-1], axis=1)
return sortarr[mask]
我将这一行替换为
string name = saReader.GetString(0);
答案 1 :(得分:0)
在.NET中将SQL Server tinyint
转换为byte
时,您需要这样读取它,然后转换为字符串:
byte dbValue = saReader.GetByte(0);
string name = dbValue.ToString();
ddlStatus.Items.Add(name);