Member 14083059 Ответов: 1

Как решить ссылку на объект, не заданную на экземпляр объекта object.in ASP.NET


Здесь я получаю ошибку :
cmd.CommandText = "select * from AddProduct_db where Product_Name='" + comboBox1.SelectedItem.ToString() + "'";



Сообщение показывает-ссылка на объект не установлена на экземпляр объекта



private void comboBox1_SelectedIndexChanged(отправитель объекта, EventArgs e)
{
SqlConnection con = новый SqlConnection(соединение);
против.Открыть();
SqlCommand cmd = con.CreateCommand();
УМК.Свойство Commandtype = Значение Commandtype.Текст;
УМК.CommandText = "select * from AddProduct_db where Product_Name='" + comboBox1.SelectedItem.Метод toString() + "'";
УМК.Метод executenonquery();
DataTable dt = новый DataTable();
SqlDataAdapter sda = новый SqlDataAdapter(cmd);
ПДД.Заполнить(ДТ);
по каждому элементу (объекта datarow Dr в ДТ.Строк)
{
текстовое поле textbox1.Текст = доктор["Имя_продукта"].Метод toString();
pdescription.Текст = доктор["Product_Description"].Метод toString();
пуниты.Текст = доктор["Product_Units"].Метод toString();
pqty.Текст = доктор["Product_Stocks"].Метод toString();

}
против.Закрывать();
}

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

частная AddCart_Click недействительным(объект отправителя, EventArgs в электронной)
{
если (IsValidated())
{
CartItem item = новый CartItem()
{
Название = поле combobox1.Текст,
Описание = pdescription.Текст,
ProductUnit = пуниты.Текст,
Акции = Конвертация.ToInt32(pqty.Text.Trim()),
Цена = Конвертировать.ToDecimal(price.Text.Trim()),
Totalamount = Конвертировать.ToInt16(pqty.Text.Trim()) * конвертировать.ToDecimal(price.Text.Trim())
};
BillCart.Добавить(элемент);
BilldataGridView.Источник данных = значение null;
BilldataGridView.Источник Данных = BillCart;


десятичная сумма Totalamount = BillCart.Sum(x => x.Totalamount);
Тоталамт.Text = TotalAmount.Метод toString();

десятичный SalesTax = (12 * TotalAmount) / 100;
GST12.Текст = SalesTax.Метод toString();

десятичные Грандтоталы = TotalAmount + SalesTax;
Всего.Текст = GrandTotals.Метод toString();

pdescription.Четкий();
пуниты.Четкий();
pqty.Четкий();
цена.Четкий();
поле combobox1.Свойства selectedIndex = -1;
}
}
private bool IsValidated()
{
если (запись CNAME.Текст.Отделка() == строка.Пустой)
{
Ящик для сообщений.Show("требуется имя клиента.", "ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
запись CNAME.Сосредоточить();
возвращать false;
}


если (элемент combobox1.Свойства selectedIndex == -1)
{
Ящик для сообщений.Show("Выберите Название Продукта.", "Ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
поле combobox1.Сосредоточить();
возвращать false;
}

если (comboBox2.Свойства selectedIndex == -1)
{
Ящик для сообщений.Show("Выберите Режим Оплаты.", "Ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
comboBox2.Фокус();
возвращать false;
}



if (pdescription.Text.Trim() == строка.Пустой)
{
Ящик для сообщений.Show("требуется описание.", "ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
pdescription.Сосредоточить();
возвращать false;
}

если (punits.Текст.Отделка() == строка.Пустой)
{
Ящик для сообщений.Show("Требуемые Единицы Измерения.", "Ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
пуниты.Сосредоточить();
возвращать false;
}

if (pqty.Text.Trim() == строка.Пустой)
{
Ящик для сообщений.Show("количество не должно быть пустым.", "ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
pqty.Сосредоточить();
возвращать false;
}
еще
{
инт tempQuantity;
bool isNumeric = int.Метод tryparse(pqty.Текст.Отделка(), из tempQuantity);
если (!isNumeric)
{
Ящик для сообщений.Show("Quantity should be integer value.", "Error", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
pqty.Четкий();
pqty.Сосредоточить();
возвращать false;
}


}

if (price.Text.Trim() == строка.Пустой)
{
Ящик для сообщений.Show("цена продукта не должна быть пустой.", "ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
цена.Сосредоточить();
возвращать false;
}
еще
{
десятичная Н;
bool isDecimal = десятичное число.Метод tryparse(цена.Текст.Отделка(), из Н);

если (!isDecimal)
{
Ящик для сообщений.Show("цена продукта должна быть числовым значением.", "ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка);
цена.Четкий();
цена.Сосредоточить();
возвращать false;
}
вернуть true;
}

}

1 Ответов

Рейтинг:
12

Dave Kreskowiak

Это потому, что combox1.SelectingItem возвращает null. Там нет выбранного элемента.

Возможно, вам захочется проверить значения, которые вы собираетесь использовать для null, прежде чем пытаться их использовать.

То, что событие SelectedIndex было запущено, еще не означает, что что-то действительно было выбрано.


Member 14083059

Итак, сэр, как решить проблему.
что я использую для отражения этого: cmd.CommandText = "select * from AddProduct_db where Product_Name='" + comboBox1.SelectedItem.Метод toString() + "'";

Dave Kreskowiak

Я уже сказал вам, что не так и что нужно сделать, чтобы предотвратить эту проблему.

Вы, очевидно, не знаете, как проверить, является ли что-то нулевым?

    if (comboBox1.SelectedItem == null)

Member 14083059

Благодарю вас сэр это работа