Przypuśćmy, że chcesz zapętlić kolekcję wierszy i chcesz wstawić je wszystkie, wtedy spróbowałbym z pseudokodem takim jak ten.
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();
}
}
Zbuduj sparametryzowane zapytanie, zdefiniuj parametry (tu są wszystkie parametry typu string, które należy sprawdzić), a następnie wykonaj pętlę nad wierszami tabeli danych przypisując wartości parametrów z odpowiedniej kolumny. Zauważ, że w tekście polecenia nie wpisujesz bezpośrednio wartości, ale umieszczasz symbol zastępczy dla rzeczywistej wartości, którą podasz wewnątrz pętli.