Giả sử bạn muốn lặp lại một tập hợp các hàng và bạn muốn chèn tất cả chúng thì tôi sẽ thử với một mã giả như thế này.
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();
}
}
Xây dựng một truy vấn tham số hóa, xác định các tham số (ở đây là tất cả các tham số kiểu chuỗi, cần được kiểm tra) và sau đó lặp qua các hàng của datable gán giá trị tham số từ cột tương ứng. Lưu ý rằng trong văn bản lệnh, bạn không viết trực tiếp các giá trị nhưng bạn đặt một trình giữ chỗ cho giá trị thực mà bạn sẽ cung cấp bên trong vòng lặp.