Ниже приведен код, в котором я написал только сохранение значения первой строки в базе данных, но когда я пытаюсь сохранить несколько значений строки, он дает ошибку. Я не знаю, как использовать цикл в этом коде и где использовать цикл для вставки нескольких строк в базу данных сразу.Сохранение данных из datagridview в базу данных SQL Server
Как сохранить значения DataGridView в базе данных SQL Server?
private void button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("INSERT INTO datagrid (sr, name, email, tel_no) VALUES(@c1,@c2,@c3,@c4)", cs);
{
cmd.Parameters.Add(new SqlParameter("@C1", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@C2", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@C3", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@C4", SqlDbType.VarChar));
cs.Open();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
{
if (!row.IsNewRow)
{
cmd.Parameters["@C1"].Value = row.Cells[0].Value;
cmd.Parameters["@C2"].Value = row.Cells[1].Value;
cmd.Parameters["@C3"].Value = row.Cells[2].Value;
cmd.Parameters["@C4"].Value = row.Cells[3].Value;
cmd.ExecuteNonQuery();
}
cs.Close();
}
}
}
}
Какая ошибка?Я уверен, что это связано с закрытым соединением - вы закрываете соединение в конце вашего кода для каждого блока кода, поэтому он сохранит только первую строку, независимо от того, сколько строк у вас есть. Переместите 'cs.Close();' вне вашего для каждого цикла. – Tim
Вам не нужен цикл foreach. –
@SaroopTrivedi - Если OP сохраняет несколько строк из DataGridView, им нужен какой-то цикл. – Tim