Hvis du antager, at du vil sløjfe over en samling rækker, og du vil indsætte dem alle, så ville jeg prøve med en pseudokode som denne.
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();
}
}
Byg en parametreret forespørgsel, definer parametrene (her er alle parametre af strengtype, der skal kontrolleres) og løkke derefter over rækkerne i datatabellen og tildeler parameterværdien fra den tilsvarende kolonne. Bemærk, at du i kommandoteksten ikke skriver værdierne direkte, men du sætter en pladsholder for den faktiske værdi, som du vil levere inde i løkken.