Det här fungerar ju om jag har en DataTable jag vill skicka in som t.ex. har en kolumn som heter "SoftwareName" men annars blir det fel.
Jag vill helst bara ha en generell metod som kan ta emot vilken DataTable som helst.. nån som har nåt förslag..? Tyckte jag läste nåt inlägg om reflection.. att man kunde ha det så att man slapp veta vilka parametrar man skulle ha eller nåt fast jag vet inte hur det funkar.. (eller så missförstod jag =) Om det inte var klart vad jag menade förklarar jag igen.. vilka förslag som helst är välkomna :)
Provade med att lägga ansvaret på den metod som anropade metoden.. verkade vara det enklaste.. typ nåt sånt kanske..? håller på o testar..
public static SqlCommand CreateDtCommand(string spName, IDataParameter[] spParams)
{
SqlCommand cmd = new SqlCommand(spName, SqlConnect);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter param in spParams)
{
cmd.Parameters.Add(param);
}
return cmd;
}
Edit: egentligen inte nån större skillnad mot innan bortsett från att jag "faktoriserat" ut skapandet av SqlCommand.. kommer inte ifrån att jag måste skapa tre metoder som fixar spParams.. och som sen anropar ovanstående.. fast kommer inte på nåt annat just nu..
Jag har precis börjat prova o använda DataTables för att uppdatera db.. vet inte om jag gör principiellt fel..? Just nu har jag att en DataTable motsvarar en tabell i databasen.. i db t.ex. tblSoftware motsvaras av DataTable dtSoftware, o samma för tblComputer osv..
så när jag är klar med alla förändringar vill jag ju uppdatera dB med de DataTables som jag har liggande ute mha. av nån metod.. jag använder Stored Procs som ju har olika in-parametrar beroende på vilken DataTable som ska uppdateras.. det kan ju bli ganska mastig kod om jag t.ex. ska bygga ny InsertCommand för varje datatable jag har.. känns som om det borde finnas bättre sätt..?
Eller säg att jag har * en * stored proc som uppdaterar två tabeller (istället för två sp's som gör samma sak), t.ex. att jag vill uppdatera tblSoftware och tblComputer samtidigt.. hur kan jag uppdatera från både dtSoftware och dtComputer till dB? Är dataset lösningen?
Inlägget om reflection som jag tänkte på är detta: http://www.webforum.nu/showthread.php?p=704451#post704451 som Gladh gjorde.. vet inte om det går o tillämpa på mitt problem..? låter smidigt fast jag vet inte riktigt hur man tillämpar det han berättar om.. nån som vet?
Nu skrev jag kanske för mycket så det blev rörigt istället..? Kanske bättre om jag ställer en öppen fråga; hur man kan göra för att uppdatera DataTables data till dB..? :)
345 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e