Stel dat je een verzameling rijen wilt doorlopen en je wilt ze allemaal invoegen, dan zou ik het proberen met een pseudocode als deze.
string cmdText = "INSERT INTO MY_INSERT_TEST(Col1, Col2, Col3) VALUES(?, ?, ?)";
using(OdbcConnection cn = getDBConnection())
using(OdbcCommand cmd = new OdbcCommand(cmdText, cn))
{
cn.Open();
cmd.Parameters.AddWithValue("@p1", "");
cmd.Parameters.AddWithValue("@p2", "");
cmd.Parameters.AddWithValue("@p3", "");
foreach(DataRow r in dt.Rows)
{
cmd.Parameters["@p1"].Value = r["Column3"].ToString());
cmd.Parameters["@p2"].Value = r["Column1"].ToString());
cmd.Parameters["@p3"].Value = r["Column2"].ToString());
cmd.ExecuteNonQuery();
}
}
Bouw een geparametriseerde query, definieer de parameters (hier zijn alle parameters van het stringtype, deze moeten worden gecontroleerd) en loop dan door de rijen van de datatabel en wijs de parameterwaarde toe uit de corresponderende kolom. Merk op dat u in de opdrachttekst niet rechtstreeks de waarden schrijft, maar een tijdelijke aanduiding plaatst voor de werkelijke waarde die u in de lus gaat invoeren.