visual studio 2010-C#错误:无法隐式转换类型';int';到';short'
本文关键字:类型 int short 转换 错误 2010-C# studio visual | 更新日期: 2023-09-27 18:01:01
我正在学习C#,但一直收到一个错误"无法将类型'int'隐式转换为'short'"。
在我的数据库所在的Microsoft SQL Server中,U_Weeks_In_Month被定义为smallint。我需要做些什么来解决这个错误?
我试着用短音。与年份中的文本字段一样进行分析,但这对项目不起作用,即
U_Weeks_In_Month = short.Parse(item.WeekNumber),
有什么解决方案吗?
我的代码是:
var weekInfos = SAPUtility.GetWeekInfo(dateTimePicker1.Value, 52);
// Create object
foreach (var item in weekInfos)
{
// Get new code
var newWeeklyCode = weeklyPeriodService.GenerateSAPCode();
var weeklyPeriodAdd =
new WeeklyPeriod
{
Code = newWeeklyCode,
Name = newWeeklyCode,
U_Tax_Year = short.Parse(txt_tax_year.Text),
U_Month = item.Month.ToString(),
U_Pay_Process_Status = "N",
U_Payroll_Year = short.Parse(txt_tax_year.Text),
U_Weeks_In_Month = item.WeekNumber,
U_Starting_date = item.FirstDayOfWeek,
U_Ending_date = item.LastDayOfWeek,
};
// Save record
weeklyPeriodService.AddWeeklyPeriod(weeklyPeriodAdd);
}
我怀疑您只需要:
U_Weeks_In_Month = (short) item.WeekNumber
另一种选择是将WeekNumber
属性更改为short
。
此外,我会将txt_tax_year.Text
的解析拉到循环之外:
short taxYear = short.Parse(txt_tax_year.Text);
foreach (var item in weekInfos)
{
// Use taxYear in here
}
您可以铸造项目,例如:U_Weeks_In_Month=(短(项目。周号,
但我会检查为什么项目。WeekNumber是一个整数,请更正它(假设代码是您的(。
似乎item.WeekNumber
属于int
类型。在这种情况下,编译器给出了正确的错误。如果您不确定解析是否成功,则应该使用short.Parse
或short.TryParse
。