powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не удаётся вытянуть данные из базы
4 сообщений из 4, страница 1 из 1
Не удаётся вытянуть данные из базы
    #37481713
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи всем!

Помогите, пожалуйста, разобраться в следующей ситуации :
Есть хранимая процедура в базе, которая делает выборку по нескольким таблицам такого вида :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE PROCEDURE GetCarsForEdit
AS   
SELECT
 c.IdCar,
 Brands=b.brandOfCar,
 Models=m.nameModel, 
 c.color,
 c.volumeOfEngine,
 c.Description,
 p.price
FROM Cars c
JOIN Models m on c.ModelId=m.IdModel
JOIN Brands b on c.brandId=b.IdBrand
CROSS APPLY(SELECT TOP(1) * FROM Prices p WHERE p.CarId=c.IdCar ORDER BY p.datePrice DESC) p
ORDER BY Models, Brands;

Считываю информацию таким образом :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public List<EditDetails> GetCarsForEdit()
        {           
            SqlCommand cmd = new SqlCommand("GetCarsForEdit", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            ListCars = new List<EditDetails>();

            try
            {
                connection.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    EditDetails editDetails = new EditDetails((int)reader["IdCar"], (string)reader["brandOfCar"], (string)reader["model"], (string)reader["color"], (int)reader["volumeOfEngine"], (string)reader["description"], (int)reader["price"]);
                    ListCars.Add(editDetails);
                }

                reader.Close();
                return ListCars;
            }
            .........

Информация должна отображаться в GridView, но происходит ошибка в строке 35 :
Код: plaintext
1.
2.
 brandOfCar
Описание: Необработанное исключение при выполнении текущего веб-запроса.
Код: plaintext
1.
2.
3.
4.
5.
Строка 33:                 while (reader.Read())
Строка 34:                 {
Строка 35:                     EditDetails editDetails = new EditDetails((int)reader["IdCar"], (string)reader["brandOfCar"], (string)reader["model"], (string)reader["color"], (int)reader["volumeOfEngine"], (string)reader["description"], (int)reader["price"]);
Строка 36:                     ListCars.Add(editDetails);
Строка 37:                 }

Вот часть трассировки :
Код: plaintext
1.
2.
3.
4.
[IndexOutOfRangeException: brandOfCar]
   System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) +5002922
   System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) +67
   System.Data.SqlClient.SqlDataReader.get_Item(String name) +15

Хранимая процедура срабатывает в базе. В чём здесь проблема?
...
Рейтинг: 0 / 0
Не удаётся вытянуть данные из базы
    #37481731
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erman,

Скорее всего, по одному из полей reader выдаёт DBNull, простым приведением к типу здесь не обойдешься.
...
Рейтинг: 0 / 0
Не удаётся вытянуть данные из базы
    #37481945
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Starlexerman,

Скорее всего, по одному из полей reader выдаёт DBNull, простым приведением к типу здесь не обойдешься.

Как тогда сделать?
...
Рейтинг: 0 / 0
Не удаётся вытянуть данные из базы
    #37481949
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не удаётся вытянуть данные из базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]