Member 14615938 Ответов: 2

Это имя не существует в текущем контексте


This error occurs in the following method, please help


Что я уже пробовал:

[HttpPost]
   public async Task<IActionResult> DeatailsAnalysis(int carId, string selectedDate)
   {
       DateTime selectedDay = PersianToGregorian(selectedDate, out int selectedPersianYear);
       SqlConnection connection = null;
       SqlCommand command = null;
       var model = new List<InventoryAnalysisReportViewModel>();

       try
       {
           connection = DbContext.Database.GetDbConnection() as SqlConnection;
           command = new SqlCommand("dbo.DeatailsInventoryAnalysisReportPerDay")
           {
               CommandType = CommandType.StoredProcedure,
               Connection = connection
           };
           command.Parameters.Add(new SqlParameter("@SelectedDay", selectedDay));
           command.Parameters.Add(new SqlParameter("@CarId", carId));

           if (connection.State != ConnectionState.Open)
               await connection.OpenAsync();

           using var reader = await command.ExecuteReaderAsync();
           while (await reader.ReadAsync())
           {
               model.Add(new InventoryAnalysisReportViewModel
               {
                   CarId = reader.GetInt32(reader.GetOrdinal("CarID")),
                   CarTitle = reader.GetString(reader.GetOrdinal("CarTitle")),
                   ProvisionalDeliveryQty = reader.GetInt32(reader.GetOrdinal("ProvisionalDeliveryQty")),
                   SectionsQty = reader.GetInt32(reader.GetOrdinal("SectionsQty")),
                   ParkingInventoryQty = reader.GetInt32(reader.GetOrdinal("ParkingInventoryQty")),
                   //InventoryQty = reader.GetInt32(reader.GetOrdinal("InventoryQty")),
                   TotalDeatails = reader.GetInt32(reader.GetOrdinal("TotalDeatails")),
                   YearType = Convert.ToInt32(reader.GetValue(reader.GetOrdinal("CarModels"))) == selectedPersianYear
                               ? YearsType.Currentyear
                               : YearsType.Pastyears
               });
           }
       }
       catch (Exception ex)
       {
           throw ex;
       }
       finally
       {
           if (command != null)
           {
               command.Dispose();
           }
           if (connection.State != ConnectionState.Closed)
           {
               connection.Close();
               connection.Dispose();
           }
       }

       return Json(model);
   }

Patrice T

Дайте точное сообщение об ошибке и скажите строку ошибки.

2 Ответов

Рейтинг:
1

OriginalGriff

Ошибка mesna именно то, что она говорит: вы используете переменную, свойство или имя метода, которое не существует в текущем контексте.
Он может выйти за рамки к тому времени, когда вы его используете:

while (a < b)
   {
   int c = Foo(a);
   a++;
   }
Bar(c);
К тому времени, как ты позвонишь Bar, c вышел за рамки дозволенного.
Или, может быть, вы что-то неправильно написали.
Или, может быть, вы упускаете using заявление.

Мы не можем сказать: мы не можем скомпилировать ваш код изолированно и получить тот же результат, что и вы.

Поэтому дважды щелкните сообщение об ошибке, и VS приведет вас непосредственно к строке ошибки. Найдите имя, которое подчеркнуто красным цветом, а затем попытайтесь найти его определение или то, где, по вашему мнению, оно определено.

Извините, но мы не можем сделать это для вас!


Рейтинг:
0

Richard MacCutchan

DateTime selectedDay = PersianToGregorian(selectedDate, out int selectedPersianYear);

Я думаю, что синтаксис неверен, но и вы его не объявили selectedPersianYear.


Richard Deeming

Это новый синтаксис, добавленный в C# 7, который позволяет объявлять out переменная встроенный:
Что нового в C# 7.0 - руководство по C# | Microsoft Docs[^]

Richard MacCutchan

:(

Member 14615938

помоги мне

Richard MacCutchan

Мы не сможем помочь вам, если вы не предоставите всю необходимую информацию. Что такое точное сообщение об ошибке и в какой строке оно появляется?

ZurdoDev

Зачеркивание-это новый синтаксис c# 7?

Richard MacCutchan

Конечно, это ускоряет работу моего кода.

ZurdoDev

;)