Как я могу сохранить значение из sqlDataReader?а сравнивать? - PullRequest
0 голосов
/ 23 октября 2011
int availableSeat = 0;
string query = "select flight_no flight_seat from flight_info where flight_departure_time = @selectedFlight AND flight_from = @flightFrom AND flight_to = @flightTo ";
string url = "Server=localhost;Database=flight;uid=******;password=*****";
con1 = new MySqlConnection(url);
con1.Open();
cmd1 = new MySqlCommand(query,con1);
cmd1.Parameters.AddWithValue("@selectedFlight",comboBox3.SelectedItem);
cmd1.Parameters.AddWithValue("@flightFrom",comboBox1.SelectedItem);
cmd1.Parameters.AddWithValue("@flightTo",comboBox2.SelectedItem);
reader = cmd1.ExecuteReader();
while (reader.Read()) 
{
    availableSeat.Equals(reader["flight_seat"]);
    if(availableSeat > 0)
    {
        MessageBox.Show("The seat is available!!");
    }
    else
    {
        MessageBox.Show("Sorry, all seat has been booked!!");
    }
}
con1.Close();

Как вы можете видеть здесь, я хотел бы сохранить столбец flight_seat из SQL в availableSeat, чтобы проверить, есть ли доступное место.

Как я могу это сделать?потому что он продолжает идти к другому.

Ответы [ 2 ]

1 голос
/ 23 октября 2011

availableSeat.Equals() - это сравнение, а не задание.Вам нужно будет присвоить значение.Например

availableSeat = (int)reader["flight_seat"];
1 голос
/ 23 октября 2011

Измените его на:

availableSeat = (int)reader["flight_seat"]);

Метод Equals() используется для целей сравнения (равенства), а не для присвоения.Кроме того, присваивания выполняются в C #, устанавливая переменную слева от = для результата оператора справа.

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

availableSeat = reader["flight_seat"].Equals(DBNull.Value)
                    ? 0
                    : (int)reader["flight_seat"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...