Om du antar att du vill loopa över en samling rader och du vill infoga alla så skulle jag försöka med en pseudokod som denna.
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();
}
}
Bygg en parametriserad fråga, definiera parametrarna (här är alla parametrar av strängtyp som måste kontrolleras) och loop sedan över raderna i datatabellen och tilldelar parametrarnas värde från motsvarande kolumn. Lägg märke till att i kommandotexten skriver du inte direkt värdena utan du lägger en platshållare för det faktiska värdet som du kommer att ange inuti slingan.