Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Mehrer Tabellen einbind in Windows.Form
spacer
Autor Nachricht
Scooby2007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 16
Dabei seit: 30.07.2007



BeitragVerfasst: Do 23.08.07 14:58  Antworten mit Zitat Beitrag melden
Hallo miteinander,

Ich hätte mal eine Frage an euch.Ich bastel gerad an einem Programm zu Verwaltung von DVD.Als Datenbank dient mir eine Access Datei.Die grafische Oberfläche wird mit C# erstellt.Nun hab ich eben eine Verbindung zur Datenbank erstellt, und lasse mir nun Daten aus eben EINER Tabelle in Textboxen anzeigen.Nun ist es aber so das ich noch Daten in anderen Tabellen habe die ich auf derselben grafischen Oberfläche angezeigt haben will. Wie kann ich eine Verbindung zu mehreren Tabellen erstellen.
Hier mal mein bisheriger Code :


ausblenden volle Höhe C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DVDDatenbank
{
    using System.Data.OleDb;

    public partial class Form1 : Form
    {
        private DataView dv = null;
        public Form1()
        {
            InitializeComponent();
        }

        private void schliessenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult dr =

                MessageBox.Show("Wollen sie die Anwendung beenden ?",
                        "Anwendungsmeldung",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question,
                        MessageBoxDefaultButton.Button2);

            if (dr == DialogResult.No)
                e.Cancel = true;

        }


        private void neueDVDToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // öffnet eine neue Form
            Form2 frm = new Form2();
            frm.Show();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: Diese Codezeile lädt Daten in die Tabelle "dVDDatenbankDataSet.tblRegie". Sie können sie bei Bedarf verschieben oder entfernen.
            this.tblRegieTableAdapter.Fill(this.dVDDatenbankDataSet.tblRegie);
            fillListControl(listBox1);
        }

        private void fillListControl(ListControl lc)
        {
            OleDbConnection conn = new OleDbConnection(
                                   "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DVDDatenbank.mdb;");
            OleDbDataAdapter da = new OleDbDataAdapter("Select * FROM tblFilm ORDER BY F_Titel", conn);
            DataTable dt = new DataTable("DVDListe");
            da.Fill(dt);
            dv = dt.DefaultView;
            lc.DataSource = dv;
            lc.DisplayMember = "F_Titel";
            lc.SelectedValueChanged += new System.EventHandler(listControl_SelectedIndexChanged);
        }

        private void listControl_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListControl lc = (ListControl)sender;
            textBox1.Text = dv[lc.SelectedIndex].Row["F_Titel"].ToString();
            textBox2.Text = dv[lc.SelectedIndex].Row["F_OTitel"].ToString();
            textBox7.Text = dv[lc.SelectedIndex].Row["F_Länge"].ToString();

        }
    }
}



Es exestiert bis jetzt nur eine Verbindung zur Tabelle tblFilm.Ich möchte aber auch in meine Tabelle Regiesseur greifen und mir dort daten rausholen.

Moderiert von raziel: C#-Tags hinzugefügt
Private Nachricht sendenPosting in privater Nachricht zitieren
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 2021
Erhaltene Danke: 4
Dabei seit: 24.08.2006
Wohnort: Berlin

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 23.08.07 16:04  Antworten mit Zitat Beitrag melden
Hallo,

ich rate davon ab, in Deiner jetzigen Konstruktion etwas "herumzupfuschen" und andere Tabellen hinzuzufügen. Die Tabelle "F_Titel" hat ja wohl nichts mit der Tabelle "Regisseur" zu tun (außer dass sie in derselben Datei steckt).

Es wäre möglich, ein und dieselbe DataGridView wahlweise mit der einen oder anderen Tabelle zu füllen (mit AutoGenerateColumns werden auch die Spalten angepasst). Aber das ändert das Hauptproblem nicht.

Empfehlung: Erstelle Dir für jede Tabelle eine eigenständige Oberfläche (DataGridView, GroupBox mit TextBoxen oder was auch immer Dir gefällt) und eine eigenständige Datenmenge (DataTable innerhalb eines gemeinsamen DataSet) mit getrenntem DataAdapter; vielleicht genügen auch zwei getrennte TableAdapter. Die DbConnection kann natürlich identisch verwendet werden (unter Berücksichtigung variabler Zugriffsparameter).

Falls Dir Grundlagen fehlen: OpenBook C# Kap.26.

Gruß Jürgen

PS. Bitte formatiere Quellcode künftig selbst: auf "Bereiche" klicken, Text markieren, auf das Plus neben "C#" klicken. Das kannst Du auch nachträglich erledigen.
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home