У меня есть следующий код:
private int bla(out int itemsMin, out int purchase)
{
string ID = (Request.QueryString["Ttrsid"] ?? "0").ToString();
{
SqlConnection connection = new SqlConnection("Data Source=*****;Initial Catalog=****;User ID=****;Password=*****;Integrated Security=False;");
string commandtext = "SELECT Min FROM myItems WHERE itemId=@ID";
SqlCommand command = new SqlCommand(commandtext, connection);
connection.Open();
command.Parameters.AddWithValue("@ID", ID); //Adds the ID we got before to the SQL command
itemsMin = (int)command.ExecuteScalar();
string commandtext2 = "SELECT COUNT (*) FROM purchase";
SqlCommand command2 = new SqlCommand(commandtext2, connection);
purchase = (int)command2.ExecuteScalar();
}
return 0;
}
Код предназначен для двух меток, которые я использую - одна для получения минимального количества (itemsMin), а другая для подсчета покупки.
Я использую строку запроса, чтобы получить значения по itemid, который пользователь смотрит на него сейчас .. (из адресной строки (например: items.aspx? Ttrsid = 5, поэтому я хочу увидеть минимальное количество Ttrsid = 5).
Все отлично работает. когда я нахожусь на Ttrsid = 1, Ttrsid = 2 - я получаю то, что хочу, но когда меня вводят на Ttrsid = 3 и так далее - это выдает мне ошибку:
System.NullReferenceException
На линию:
itemsMin = (int) command.ExecuteScalar ();
.. и это не нуль .. элемент имеет все обязательные поля, такие как Ttrsid = 2 .... и что здесь не так?
Следующий код - это использование приведенной выше команды:
int i, p; // variable need not be initialized
Console.WriteLine(bla(out i, out p));
if (i < p)
{
haha.Visible = true;
}
else
{
haha2.Visible = true;
}
Console.WriteLine(i);
Console.WriteLine(p);
i = itemsMin, p = покупка.