Операторы условия для значения данных одной строки в базе данных - PullRequest
0 голосов
/ 13 сентября 2018


Я использую C # для создания формы Windows.
Я пытаюсь установить условие условия для определенного значения, которое извлекается из моей базы данных по нажатию кнопки. Тип данных столбца - «целое число».

Ниже мой код:

 string checkquantity = "SELECT  `inventory_item`.`Item_Quantity_Available`FROM `inventory_item` , `patient`, `out_treatment`WHERE `inventory_item`.`Item_ID` = `out_treatment`.`Inventory_ID`AND `patient`.`Patient_ID` = `out_treatment`.`Patient_ID`AND `out_treatment`.`Patient_ID`= '" + pid + "' ";
            MySqlCommand selectout = new MySqlCommand(checkquantity, connect);
            MySqlDataAdapter selectdata = new MySqlDataAdapter(checkquantity, connect);
            DataTable selecttable = new DataTable();
            selectdata.Fill(selecttable);
            DataSet ds = new DataSet();
            selectdata.Fill(selecttable);
            selectdata.Fill(ds);
            int i = ds.Tables[0].Rows.Count;
            if ( i <= 0)
            {
                MessageBox.Show("Out of Stock");
            }

Я новичок в c #.
Я не думаю, что int i = ds.Tables[0].Rows.Count; - правильный путь.
Любая помощь очень ценится.

1 Ответ

0 голосов
/ 13 сентября 2018

Прежде всего, как сказал @ Flydog57, вам не следует объединять SQL-запрос. Лучше всего использовать параметры, например:

string checkquantity = "SELECT  i.Item_Quantity_Available " +
                       "  FROM inventory_item i JOIN out_treatment t ON i.Item_Id = t.Inventory_ID " +
                       "                        JOIN patient p ON t.Patient_ID = p.PatiendID " +           
                       " WHERE t.Patient_ID = @Patiend_ID";
MySqlCommand selectout = new MySqlCommand(checkquantity, connect);
// set the parameter value
selectout.Parameters.AddWithValue("@Patiend_ID", patient_id_value);
MySqlDataReader rdr = cmd.ExecuteReader();          

if (rdr.Read())
{
    if ((int)rdr["Item_Quantity_Available"] == 0)

        MessageBox.Show("Out of Stock");
}

Во-вторых, вы можете использовать MySqlDataReader, чтобы убедиться, что Item_Quantity_Available равно 0, как в предыдущем примере. В противном случае, если вы просто хотите проверить, есть ли данные, условие может быть примерно таким:

if (!rdr.Read())
{
    MessageBox.Show("Out of Stock");
}

Третье улучшение - это объединение таблиц с предложением объединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...