Системы.исключение InvalidOperationException: 'недопустимая попытка чтения при отсутствии данных присутствует.'
Здравствуйте, я получаю сообщение об ошибке при публикации моего кода. Пожалуйста, помогите мне определить, в чем может быть проблема.
Ошибка находится в строке 77: Total = Total + sdr.GetDecimal(3);
использование системы;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
использование System.Linq;
использование System.Web.UI;
публичная частичная корзина классов : страница
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
var skus = конвертировать.ToString(Session["DataTable"]).Split(',').Список();
Сессия["ItemsInCart"] = артикулы.Рассчитывать;
var multiSelect = новая команда SqlCommand();
строка cmdString1;
cmdString1 = "выберите производитель, артикул, Наименование, Цена от продуктов, где артикул =" + сессия["CartTable"];
соединение var =
новое соединение SqlConnection(
"Данные Source=Omisbi3.niunt.niu.edu;начальный каталог= 675_z1626585;идентификатор пользователя=OMIS675FA;пароль=Omis.675!");
Класс sqldatareader СДР;
десятичная сумма = 0;
//Создание таблицы
var DT = new DataTable("CartDisplay");
var column1 = новый столбец данных("SKU");
column1.DataType = тип.Метод Gettype (Системы".Типа int32");
var column2 = новый столбец данных("производство");
column2.DataType = тип.GetType("Система.Строка");
var column3 = новый столбец данных("имя");
column3.DataType = тип.GetType("Система.Строка");
var column4 = новый столбец данных("цена");
column4.DataType = тип.GetType("Система.Десятичный");
ДТ.колонны.Добавить(столбец 1);
ДТ.колонны.Добавить(столбец 2);
ДТ.колонны.Добавить(столбец 3);
ДТ.колонны.Добавить(колонка4);
for (var i = 0; i <= skus.Граф - 1; i++)
{
мультиселект.Свойства commandtext = "выбрать артикул, производитель, Название, Цена от продуктов, где артикул = @артикулы";
мультиселект.параметры.Четкий();
мультиселект.параметры.AddWithValue("@сеи", артикулы[я]);
множественный выбор.Соединение = соединение;
множественный выбор.Соединение.Открыть();
sdr = мультиселект.Метода executereader();
в то время как (sdr.Read())
sdr = мультиселект.Метода executereader();
{
Строкой 1 Объекта Datarow ;
Строкой 1 = ДТ.Невров();
Total = Total + sdr.GetDecimal(3);
Строка 1["SKU"] = sdr.GetInt32(0);
Row1["Manufacturer"] = sdr.GetString(1);
Row1["Name"] = sdr.GetString(2);
Row1["Price"] = sdr.GetDecimal(3);
DT.Rows.Add(строка 1);
}
множественный выбор.Соединение.Закрывать();
lblResults.Text = "ваша общая сумма составляет $" + Total;
}
Управления gridview1.Источник данных = ДТ;
Управления gridview1.Привязку();
}
}
Что я уже пробовал:
Я не знаю, что делать. Мне действительно нужна помощь как можно скорее. Спасибо.