Mam bazę danych z dwiema tabelami. Obie te tabele są powiązane i mają to samo pole kluczowe. Na przykład oba mają wiersze danych odpowiadające ISBN = 12345, ale dwie tabele mają różne dane o tym numerze ISBN.Potrzebujesz pomocy w pracy z bazami danych w C#
Tak więc, próbuję dowiedzieć się, jak wyświetlić dane z obu tabel w jednym dataGridView. Próbowałem niektórych poleceń SQL, które znalazłem online, ale wygląda na to, że polecenia w języku C# mogą różnić się od zwykłych zapytań SQL.
Załóżmy, że tabela 1 zawiera następujące pola: ISBN, kolor, rozmiar i tabela2 mają pola ISBN, waga.
Potrzebuję sposobu wyświetlania numeru ISBN, koloru, rozmiaru, wagi w moim widoku datagridu. Myślę, że będę musiał jakoś to zrobić za pomocą przejściówki. Mogę łączyć się i wykonywać zapytania na tabelach indywidualnie i pokazywać te dane w moim datagridview, ale nie mogę wymyślić, jak połączyć dane z dwóch oddzielnych tabel.
Jeśli masz dobry zasób, mogę o tym przeczytać, chciałbym go mieć, mój google-fu mnie zawodzi.
Oto przykład coś mogę zrobić teraz z mojej bazy danych:
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'database1DataSet.Book' table. You can move, or remove it, as needed.
this.bookTableAdapter.Fill(this.database1DataSet.Book);
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\Geoff\Documents\cs 351\Database1.accdb" + ";Persist Security Info=False;";
OleDbConnection conn = new OleDbConnection(connectionString);
string query = "select * from Book where ISBN = 12345";
OleDbCommand com = conn.CreateCommand();
com.CommandText = query;
OleDbDataAdapter adapter = new OleDbDataAdapter(com);
DataSet data = new DataSet();
conn.Open();
adapter.Fill(data);
conn.Close();
dataGridView1.DataSource = data.Tables[0];
}
Więc zasadniczo, chciałbym zrobić to, co zrobiłem powyżej, ale chcę to dane z inna tabela też. Druga tabela ma również pole klucza ISBN i zawiera wartości numeru ISBN pasujące do pierwszej tabeli.
Witam @Jeff i witam w StackOverflow. Chcemy pomóc, ale chcemy również zobaczyć, co do tej pory otrzymaliście. Czy możesz podać nam przykład niektórych danych i jak to jest obecnie? Zwróć uwagę na pokazywanie problematycznych części. Możemy po prostu powiedzieć "zrób lewe dołączenie", ale to ci nie pomoże. – jcolebrand
Zgoda, jeśli pracujesz z bazami danych w języku C#, istnieje cały wszechświat możliwych rozwiązań, każdy z własnymi mocnymi i słabymi stronami. Możesz na przykład zbadać LINQ do rozwiązania SQL lub Entity Framework zamiast przejść do surowego SQL. Być może widziałeś przykłady tych technologii, dlatego uważasz, że "polecenia w języku C# mogą różnić się od zwykłych zapytań SQL". Zapewniamy, że język C# obsługuje "normalny" kod SQL za pośrednictwem ADO.net, ale obsługuje on znacznie więcej, w tym kwerendy jako obiekty języka pierwszej klasy za pośrednictwem LINQ. Wyruszasz w ekscytującą podróż! :) –
Oprócz mojego przykładu, który właśnie napisałem, zdecydowanie zgadzam się z Jamesem. Jest wiele możliwości i powinieneś zrobić kilka badań i prób, aby zobaczyć, które rozwiązanie jest najlepsze w twoim przypadku. – KBoek