Автор Тема: Въпрос за завка при C#  (Прочетена 929 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Knoppix

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 3
  • -Получени: 0
  • Публикации: 67
Въпрос за завка при C#
« -: 11 Февруари 2014, 14:16:22 »
Здравейте, значи искам да направя селект от две таблици в една база на mysql като искам да спазвам няколко условия и след това да ги извеждам в текстови полета
Какво имам предвид
имам форма с лист бокс която извежда записи от таблица шофьори, до тук успях да направя така че като избера шофьора да извеждам информацията която е записана в тази таблица за него, но искам да извеждам още една информация която я има в друга таблица

ето ми го кода

private void drivers_listbox_SelectedIndexChanged(object sender, EventArgs e)
        {
            string constring = "datasource=localhost;port=3306;username=root;passwor=; charset=utf8;";
            string Query = "select * from spisaci_1.drivers where ime = '" + drivers_listbox.Text + "';";
            MySqlConnection conDataBase = new MySqlConnection(constring);
            MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
            MySqlDataReader MyReader;
            try
            {
                conDataBase.Open();
                MyReader = cmdDataBase.ExecuteReader();
                while (MyReader.Read())
                {
                    string sID = MyReader.GetString("id").ToString();
                    string sIme = MyReader.GetString("ime").ToString();
                    string sPhone = MyReader.GetString("phone").ToString();
                    string sOwner = MyReader.GetString("owner").ToString();
                   


                    ime_drv_txt.Text = sIme;
                    phone_drv_txt.Text = sPhone;
                    onwer_driver_txt.Text = sOwner;
                    id_drv_txt.Text = sID;

                }
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
             
        }

Сега следващата таблица се казва курсове е искам да правя селект с който да извеждам още една променлива която да се казва last_course, като идеята е да взимам стойноста от drivers_listbox.Text  и да я придавам там където колона1 е равна на drivers_listbox.Text  или колона 2 е равна на drivers_listbox.Text  или колона 3 е равна на drivers_listbox.Text
само че нещо не мога да се ориентирам правилно опитах да го направя с тази заяка

SELECT drivers.id AS driver_id, drivers.ime, drivers.phone, drivers.owner, drivers.images, spisaci.end_date FROM drivers ,spisaci WHERE  drivers.ime = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440" AND (spisaci.driver_europe = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440" OR spisaci.driver_europe_2 = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440" OR spisaci.driver_turkey = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440" OR spisaci.driver_turkey_2 = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440") ORDER by spisaci.id LIMIT 1

но тогава ако шофьора го няма в таблицата списъци просто не извежда друга информация

много моля за помощ

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: Въпрос за завка при C#
« Отговор #1 -: 11 Февруари 2014, 18:02:25 »
Пробвай нещо такова
Код: SQL
  1. SELECT drivers.id AS driver_id, drivers.ime, drivers.phone, drivers.owner, drivers.images, spisaci.end_date
  2. FROM drivers
  3.    LEFT JOIN spisaci ON
  4.    spisaci.driver_europe = drivers.ime OR
  5.    spisaci.driver_europe_2 = drivers.ime OR
  6.    spisaci.driver_turkey = drivers.ime OR
  7.    spisaci.driver_turkey_2 = drivers.ime
  8. WHERE  drivers.ime = "АТАНАС ЖЕЛЯЗКОВ ХРИСТОВ 5802168440"
« Последна редакция: 11 Февруари 2014, 18:05:08 от kjufte »