Laden...

Neue Zeilen in SQL-Datenbank einfügen

Erstellt von havefun vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.535 Views
H
havefun Themenstarter:in
11 Beiträge seit 2011
vor 8 Jahren
Neue Zeilen in SQL-Datenbank einfügen

verwendetes Datenbanksystem: MS SQL-Server 2012

Hallo,
unerfahrener Neuling braucht Hilfe von Euch.

private void button1_Click(object sender, EventArgs e)
        {

           

            TestdatenDataSet.BuddysRow newBuddysRow;
            newBuddysRow = testdatenDataSet.Buddys.NewBuddysRow();
            newBuddysRow.Nachname = "Knallinger";
            testdatenDataSet.Buddys.Rows.Add(newBuddysRow);

            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            buddysTableAdapter.Update(testdatenDataSet.Buddys);
        }

button1 funktioniert.
In der Tabelle wird eine neue Zeile eingefügt und die Personal-Nummer hochgezählt.

button2 verursacht folgende Meldung:

Fehlermeldung:
Ein Ausnahmefehler des Typs "System.Data.SqlClient.SqlException" ist in System.Data.dll aufgetreten.

Zusätzliche Informationen: The multi-part identifier "Pers.-Nr" could not be bound.

Ich bitte um Nachsicht,daß mir tiefgreifende Kenntnisse fehlen und
bedanke mich im Voraus

Hinweis von Coffeebean vor 8 Jahren

Bitte benutze die richtigen Code-Tags

T
314 Beiträge seit 2013
vor 8 Jahren

Bitte verwende die Code-Tags.

Multi-Part bedeutet in dem Zusammenhang, dass dein Updatestatement mehrere Tabellen beinhaltet und in mehreren Tabellen die Spalte "Pers.-Nr" vorkommt. Du musst diese im Statement also vollständig angeben z.B. Tabelle1.[Pers.-Nr].

H
havefun Themenstarter:in
11 Beiträge seit 2011
vor 8 Jahren

Hallo,danke für die schnelle Antwort.
Es gibt in der Datenbank nur eine Tabelle "Buddys"
http://www.mycsharp.de/wbb2/images/smilies/confused.gif

T
314 Beiträge seit 2013
vor 8 Jahren

Kannst Du uns das Statement zeigen?

H
havefun Themenstarter:in
11 Beiträge seit 2011
vor 8 Jahren

Da bin ich wieder.
Wo bitte finde ich das SQL-Statement?

T
314 Beiträge seit 2013
vor 8 Jahren

Naja, dass musst Du ja irgendwann in deinem DataSet angegeben habe. Du kannst dort den entsprechenden Adapater auswählen und siehst in den Eigenschaften die unterschiedlichen Statements.

H
havefun Themenstarter:in
11 Beiträge seit 2011
vor 8 Jahren

Hier habe ich nur ein Statement gefunden:


SELECT        Vorname, Nachname, Geburtstag, Wohnort, [Pers.-Nr.]
FROM            Buddys

Diese Daten werden im DataGridView korrekt dargestellt.

So wie ich die Sache verstehe,muß das Statement zum Abspeichern erst
erzeugt werden

5.299 Beiträge seit 2008
vor 8 Jahren

nein, je wie die Db konfiguriert ist, werden Statements automatisch erzeugt.

Aber wenn deine Db-Tabelle zB keinen Primärschlüssel hat, dann können keine Update- oder Delete-Commands generiert werden, bleiben also null.

Dann findest du auch nur das SelectCommand. (vlt. auch noch ein InsertCommand, weiß ich aber nicht.)

Der frühe Apfel fängt den Wurm.

T
314 Beiträge seit 2013
vor 8 Jahren

Dann wäre es aber höchst unwahrscheinlich, dass das Update/Insert mit einem

Fehlermeldung:
The multi-part identifier "Pers.-Nr" could not be bound.

knallt.

H
havefun Themenstarter:in
11 Beiträge seit 2011
vor 8 Jahren

Kaum macht man alles richtig,schon geht´s.
Das Problem scheint in der Tabelle gelegen zu haben.
Habe eine neue erstellt. Der Spaltenname der Personal-Nummer hat jetzt keine
Punkte und Bindestriche mehr und der Datentyp ist jetzt "int".
An alle die sich mit meinem Problem befasst haben:
Vielen Dank!