Ошибка C #: невозможно неявно преобразовать тип int в значение short для значения элемента - PullRequest
1 голос
/ 05 июля 2011

Я изучаю C # и получаю сообщение об ошибке «Не удается неявно преобразовать тип int в« короткий »».

В Microsoft SQL Server, где моя база данных, U_Weeks_In_Month определяется как smallint.Что мне нужно сделать, чтобы решить эту ошибку?

Я пытался использовать short.Parse, как в текстовых полях года, но это не работает для элемента, т.е.

U_Weeks_In_Month = short.Parse(item.WeekNumber),

Anyрешение?

Мой код:

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

Ответы [ 3 ]

4 голосов
/ 05 июля 2011

Я подозреваю, что вам просто нужно:

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
}
0 голосов
/ 05 июля 2011

Кажется, что item.WeekNumber имеет тип int.В этом случае компилятор выдает правильную ошибку.Вам следует использовать short.Parse или short.TryParse, если вы не уверены, что синтаксический анализ будет успешным.

0 голосов
/ 05 июля 2011

Вы можете разыграть предмет, например: U_Weeks_In_Month = (короткий) item.WeekNumber,

Но я бы проверил, почему item.WeekNumber - это целое число, и исправил бы его (предполагая, что код принадлежит вам).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...