Połączenie 2 tabel z bazy danych w jednym gridzie.

0

Otóż poradziłem sobie z połączeniem grida z bazą danych, nie jest to wielka filozofia, ale chciałbym aby w jednym gridzie były wybrane pola z dwóch tabel. Powiedzmy, że będzie to grid do zamówień i chcę żeby było np. imię, nazwisko i telefon klienta, a z drugiej tabeli nazwa sprzętu i cena.

2

Słowa klucz na dziś: SELECT, JOIN

0

Walczę już jakiś czas z tymi 'Kluczami', które mi podałeś... W tej chwili mam coś takiego:

        string kwerenda = string.Format("SELECT Klient.Imie, Klient.Nazwisko, Klient.Telefon FROM Klient JOIN Zamowienia ON Id_Klient={0}", textBoxKupiec.Text);

I do tego błąd "Błąd składniowy w klauzuli FROM.". Mam pecha z tą składnią. :(

0

Nie masz pecha, tylko nie chce ci się manuala poczytać.
SELECT Klient.Imie, Klient.Nazwisko, Klient.Telefon FROM Klient JOIN Zamowienia ON Klient.Id = Zamowienia.IdKlienta
Filtrujesz albo w Bindingu, albo przez View.

0

Wciąż próbuję sobie poradzić z tą klauzulą, ale może problem tkwi w czym innym, tutaj podrzucam kod w którym może być jakiś mankament:

        private void WypelnienieGridu()
        {
            string połączenie = @"Provider=Microsoft.JET.OLEDB.4.0;data source=" + _path;
            OleDbConnection oleConnection = new OleDbConnection(połączenie);
            oleConnection.Open();
            string kwerenda = string.Format("SELECT Klient.Imie, Klient.Nazwisko, Klient.Telefon FROM Klient JOIN Zamowienia ON Klient.Id_Klient = Zamowienia.Id_Klient", textBoxKupiec.Text);
            _oleAdapter = new OleDbDataAdapter(kwerenda, oleConnection);
            _dataSet = new DataSet();
            _oleAdapter.Fill(_dataSet, _nazwaTabeli);

            for (int licznikKolumn = 0; licznikKolumn < _listaKolumnTabeli.Count; licznikKolumn++)
            {
                gridZamowienia.Columns.Add(_listaKolumnTabeli[licznikKolumn].NazwaKolumny, _listaKolumnTabeli[licznikKolumn].OpisKolumny);
            }
            gridZamowienia.Columns[0].Visible = false; 
            gridZamowienia.Columns[1].Visible = false;
            gridZamowienia.Columns[2].Visible = false;

            int liczbaWierszy = _dataSet.Tables[_nazwaTabeli].Rows.Count;
            for (int licznikWierszy = 0; licznikWierszy < liczbaWierszy; licznikWierszy++)
            {
                gridZamowienia.Rows.Add();

                gridZamowienia.Rows[licznikWierszy].Cells[0].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[0];
                gridZamowienia.Rows[licznikWierszy].Cells[1].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[1];
                gridZamowienia.Rows[licznikWierszy].Cells[2].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[2];
                gridZamowienia.Rows[licznikWierszy].Cells[3].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[3];
                gridZamowienia.Rows[licznikWierszy].Cells[4].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[4];
                gridZamowienia.Rows[licznikWierszy].Cells[5].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[5];
                gridZamowienia.Rows[licznikWierszy].Cells[6].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[6];
                gridZamowienia.Rows[licznikWierszy].Cells[7].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[7];
                gridZamowienia.Rows[licznikWierszy].Cells[8].Value = _dataSet.Tables[_nazwaTabeli].Rows[licznikWierszy].ItemArray[8];
            }
            oleConnection.Close();
        }
 
0

Ale kombinujesz...

private void WypelnienieGridu()
        {
            string polaczenie = @"Provider=Microsoft.JET.OLEDB.4.0;data source=" + _path;
            OleDbConnection oleConnection = new OleDbConnection(polaczenie);
            oleConnection.Open();
            string kwerenda = string.Format("SELECT Klient.Imie, Klient.Nazwisko, Klient.Telefon FROM Klient JOIN Zamowienia ON Klient.Id_Klient = Zamowienia.Id_Klient", textBoxKupiec.Text);
            _oleAdapter = new OleDbDataAdapter(kwerenda, oleConnection);
            _dataSet = new DataSet();
            _oleAdapter.Fill(_dataSet, _nazwaTabeli);
            gridZamowienia.DataSource=_dataSet;
            gridZamowienia.DataMember=_nazwaTabeli;
            oleConnection.Close();
}

KONIEC

1 użytkowników online, w tym zalogowanych: 0, gości: 1