下面是我寫的只保存數據庫中的第一行值的代碼,但是當我嘗試保存多行值時會發出錯誤。我不知道如何在此代碼中使用循環,以及在何處使用循環在數據庫中一次插入多行。將數據從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