行のコレクションをループし、それらすべてを挿入したい場合は、次のような擬似コードを試してみます。
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();
}
}
パラメータ化されたクエリを作成し、パラメータを定義し(ここでは文字列タイプのすべてのパラメータであり、チェックする必要があります)、データテーブルの行をループして、対応する列からパラメータ値を割り当てます。コマンドテキストでは、値を直接書き込むのではなく、ループ内に指定する実際の値のプレースホルダーを配置することに注意してください。