2017-10-07 2 views
0

Mein Fehlercode für versuchen, vollständige Liste auf Datenbank mysql mit INSERT zu schreiben. Wie funktioniert der Benutzer richtig foreach?C# Foreach-Liste, in SQL-Datenbank einfügen

NpcAI.RegisteredNpc = new CDictionnary<string, List<string>>(); 
NpcAI.RegisteredNpc.Add("Ballons", new List<string>() 
     { 
     "1", //id 
     "Ballons" // name 
     }); 

NpcAI.RegisteredNpc.Add("Ballons", new List<string>() 
     { 
     "2", //id 
     "lons" // name 
     }); 



foreach(npc in NpcAI.RegisteredNpc) 
{ 
    using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) 
    { 
     client.ClearParameters(); 
     client.SetParameter("id", (object) npc[id]); 
     client.SetParameter("name", (object) npc[name]; 
     client.ExecuteNonQuery("INSERT INTO `npc`(`id`, `name`) VALUES (@id, @name)"); 
    } 
} 
+2

Was ist der Fehler? – Valkyrie

+1

Welches Problem haben Sie mit diesem Code? –

+0

Fehler in "foreach (NVK in NpcAI.RegisteredNpc)" Gravità \t Codice \t Descrizione \t Progetto \t Datei \t Riga \t Stato Eliminazione Errore \t CS0030 \t Non è possibile convertire il tipo ‚System.Collections.Generic.KeyValuePair > 'in' Zeichenfolge '. \t Androm \t C: \ Benutzer \ Stefano \ Desktop \ Andrest \ Spiel \ Npcs \ NpcAI.cs Attivo – Steve

Antwort

0

Ihre foreach sollte wie so erklärt werden:

foreach(KeyValuePair<string, List<string>> npc in NpcAI.RegisteredNpc) 
{ 
    // code 
} 

Hier Ihr voller editer ist und Code arbeitet, solange es kein SQL-Fehler ist.

NpcAI.RegisteredNpc = new CDictionnary<string, List<string>>(); 

NpcAI.RegisteredNpc.Add("Ballons", new List<string>() 
{ 
    "1", //id  
    "Ballons" // name 
}); 

NpcAI.RegisteredNpc.Add("Ballons", new List<string>() 
{ 
    "2", //id 
     "lons" // name  
}); 


foreach(KeyValuePair<string, List<string>> npc in NpcAI.RegisteredNpc) 
{ 

    using(SqlDatabaseClient client = SqlDatabaseManager.GetClient()) 
    { 
     client.ClearParameters(); 
     client.SetParameter("id", npc.Value[0]); // will get the first value so it'll be 1 or 2 
     client.SetParameter("name", npc.Value[1]); // will get the second value, so it'll be either "Ballons" or "lons"  
     client.ExecuteNonQuery("INSERT INTO `npc`(`id`, `name`) VALUES (@id, @name)"); 
    } 
}  
+0

ok, aber wie bekomme ich einen Wertnamen? – Steve

+0

Ich habe meine Antwort aktualisiert. Lesen Sie den Kommentar :-) – Wndrr

+0

Hinweis: erneut bearbeitet, hatte mein Code Syntaxfehler. Es sollte jetzt funktionieren, solange Ihr 'SqlDatabaseClient' funktioniert – Wndrr