Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - DataGridView zu SQL Database schreibt nur 1 datensatz


Petros - Do 14.09.17 15:33
Titel: DataGridView zu SQL Database schreibt nur 1 datensatz
Hallo Community,

Ich hab ein Problem und bin damit schon seit heute morgen damit beschäftigt.

Problem 1

ich parse Json daten von einigen quellen und lasse diese dann in ein DataGridView übergeben klapt auch alles ganz gut nun will ich die Daten in einer SQL datenbak speichern. Klapt auch soweit nur trägt er immer nur den 1 datensatz ein die restlichen ignoriert er.

hier code


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public static void InsertRow() 
{  
   string myConnectionString = "SERVER=localhost;DATABASE=mydb;UID=root;PASSWORD=";
   var con = new MySqlConnection(myConnectionString);
   con.Open();
   for (int i = 0; i < MyForm.dGV1.Rows.Count; i++) 
   {
    MySqlCommand daten = new MySqlCommand (@"INSERT INTO Device (D_ID, D_Name, V_ID) Values(1,@DName,"+vid+")",con);
    daten.Parameters.AddWithValue ("@DName",MyForm.dGV2.Rows[i].Cells[0].Value);
    daten.ExecuteNonQuery ();
   }
}


PS Problem 1 hab ich gelöst hab nicht auf den richtigen namen geachtet bei der for schleife hatte ich dGV1 und in der insert natürlich dGV2 da ist es kein wunder das er nur 1 wert nimmt;


Problem 2

was muss ich eingeben damit der PRIMARY KEY automatisch mit einer ID versehen wird bisher haben alle die 1
weil jedesmal wenn ich auf PK umstelle bekomme ich eine Fehlermeldung das ich kein wert zuweisen kann.


OlafSt - Do 14.09.17 15:40

user profile iconPetros hat folgendes geschrieben Zum zitierten Posting springen:
Problem 2

was muss ich eingeben damit der PRIMARY KEY automatisch mit einer ID versehen wird bisher haben alle die 1
weil jedesmal wenn ich auf PK umstelle bekomme ich eine Fehlermeldung das ich kein wert zuweisen kann.


Die Spalte mit dem PK nicht in der Liste des INSERT-Statements angeben und somit auch keinen Wert mitgeben. Das macht der SQL-Server.


Petros - Do 14.09.17 15:43

Vielen dank hat geklappt :D
PS es sollte auch noch erwähnt werden das Auto Increment aktive sein muss.

Moderiert von user profile iconTh69: Vollzitat entfernt.