Mir ist etwas bezüglich der Beziehung zwischen zwei Tabellen noch nicht klar.
Angenommen ich will zwei Tabellen miteinander verknüpfen die folgende Struktur haben:
Tabelle 1: (Kunden)
Spalte ID (Primärer Schlüssel) Die ID wird automatisch erzeugt
Spalte Name
Spalte Vorname
Tabelle 2: (Log)
Spalte Notiz
Ich habe zwei Textboxen (Name, Vorname) und eine richtextbox(Notiz). Mit einem Klick auf den Button einfügen müsste in der Tabelle 1 ID, Name und Vorname gespeichert werden und in der Tabelle 2 die Notiz in Beziehung zur ID aus Tabelle 1.
Nun die Frage:
Was für Spalten braucht die Tabelle 2? Bisher habe ich nur eine Spalte (Notiz), aber das kann nicht klappen weil die ID nicht abgespeichert werden kann. Darum denke ich ich brauche in der Tabelle 2, zwei Spalten. Eine mit ID und eine mit Notiz. Muss die Tabelle 2 auch über einen Primärschlüssel verfügen? Wenn nein, wie kriege ich die ID der Tabelle 1 in die Tabelle 2 mit der entsprechenden Notiz aus der richtextbox?
Ich habe hier einen Lösungsansatz:
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:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlServerCe;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\Daniele\Documents\Visual Studio 2010\Projects\beziehung\beziehung\qq.sdf"); SqlCeCommand cmd = new SqlCeCommand(); SqlCeDataReader reader;
private void Form1_Load(object sender, EventArgs e) { cmd.Connection = con; }
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != "" & textBox2.Text != "" & richTextBox1.Text != "") { try { con.Open(); cmd.CommandText = "insert into Kunde (Name, Vorname) values ('" + textBox1.Text + "', '" + textBox2.Text + "'); into Log (Notiz) values ('" + richTextBox1.Text + "')"; cmd.ExecuteNonQuery(); MessageBox.Show("Datensatz eingefügt"); con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } } |