无法将类型'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)});
答案 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()
方法尝试将字符串解析为正确的类型,并在解析失败时向用户提供某种类型的错误消息。