无法将类型'short'隐式转换为ushort'

时间:2019-10-01 08:09:30

标签: c# .net entity-framework northwind

  

无法将类型'short'隐式转换为ushort'UnitsInStock =   Convert.ToInt16(tbxStock.Text)});

代码

private void btnAdd_Click(object sender, EventArgs e){
_productService.Add(new Product(){
CategoryId = Convert.ToInt32(cbxCategoryId.SelectedValue),
ProductName = tbxProductName2.Text,
QuantityPerUnit = tbxQuantityPerUnit.Text,
UnitPrice = Convert.ToDecimal(tbxUnitPrice.Text),
UnitsInStock = Convert.ToInt16(tbxStock.Text)});

1 个答案:

答案 0 :(得分:0)

您是说这行代码:

UnitsInStock = Convert.ToInt16(tbxStock.Text)});

给出错误:

  

无法将类型'short'隐式转换为ushort'

所有编译器在此告诉您的是,没有从short(这是ToInt16的结果)到ushort隐式转换。 (这是 unsigned short,显然是UnitsInStock的类型)。

如果您确定tbxStock.Text代表无符号的short,那么解决此问题的最简单方法是将其转换为正确的类型:

UnitsInStock = Convert.ToUInt16(tbxStock.Text)

如果不确定,则可能应该使用ushort.TryParse()方法尝试将字符串解析为正确的类型,并在解析失败时向用户提供某种类型的错误消息。