Да предположим, че искате да преминете през колекция от редове и искате да вмъкнете всички тях, тогава бих опитал с псевдокод като този.
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();
}
}
Създайте параметризирана заявка, дефинирайте параметрите (тук са всички параметри от тип низ, трябва да бъдат проверени) и след това преминете през редовете на таблицата с данни, присвоявайки стойността на параметрите от съответната колона. Забележете, че в текста на командата не пишете директно стойностите, а поставяте контейнер за действителната стойност, която ще предоставите вътре в цикъла.