Я добавил некоторые данные из таблицы Excel в DataGridView
. Я использую этот код для сохранения данных в базе данных на SQL Server.Ошибка при использовании SqlCommand
Country
и Currency
имеют тип VARCHAR
и rate
является Float
. Данные успешно добавлены, но у меня есть сообщение об ошибке из строки SqlCommand
.
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=NIFAL;Initial Catalog=Currency;Integrated Security=True;");
foreach (DataGridViewRow Row in dataGridView1.Rows)
{
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO CurrencyTable(Country, Currency, Rate) VALUES('" + Row.Cells[0].Value.ToString()
+ " ''" + row.Cells [1] .Value.ToString() + " ''" + row.Cells [2] .Value.ToString() + ")" , против); cmd.ExecuteNonQuery(); con.Close(); } }
Строительство SQL с помощью конкатенации строк вместо параметризованных запросов не только вводят SQL-инъекцию, но и практически невозможно получить право. Любая конкретная причина, по которой вам нужно пройти такой болезненный маршрут? –
Почему вы открываете и закрываете соединение для каждой строки? Откройте соединение один раз, перед началом и закройте его после завершения цикла. Эффективность будет значительно улучшена. –