2017-10-07 131 views
0

我嘗試使用INSERT在數據庫mysql上編寫完整列表的錯誤代碼。 用戶如何正確使用foreach函數?C#Foreach List,插入到sql數據庫

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

什麼是錯誤? – Valkyrie

+1

您使用此代碼時遇到了什麼問題? –

+0

錯誤 「的foreach(NPC在NpcAI.RegisteredNpc)」 Gravità\t \t Codice Descrizione \t \t PROGETTO文件\t \t里加Stato eliminazione Errore \t \t CS0030非戊不可能性convertire IL TIPO「System.Collections.Generic.KeyValuePair <串,系統.Collections.Generic.List >'in'string'。 \t Androm \t C:\ Users \ Stefano \ Desktop \ Andrest \ Game \ Npcs \ NpcAI.cs Attivo – Steve

回答

0

foreach應該聲明如下所示:

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

這裏是你的全editer和工作代碼,只要不存在SQL錯誤。

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

好的,但如何獲得價值的名稱形式呢? – Steve

+0

我更新了我的答案。閱讀評論:-) – Wndrr

+0

注意:再次編輯,我的代碼有語法錯誤。它應該現在工作,只要你的'SqlDatabaseClient'工作 – Wndrr