I'm trying to insert all DataGridView
rows into a database.
Here is my code:
private void btnSave_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection sqlcon = new SqlConnection(con))
{
sqlcon.Open();
SqlCommand cmd = new SqlCommand("dbo.SaveWorkerSchedulePerDay", sqlcon);
cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < eachDayScheduleDG.Rows.Count; i++)
{
cmd.Parameters.AddWithValue("@day", DateTime.Now.ToString("yyyy-MM-dd"));
cmd.Parameters.AddWithValue("@worker_id", eachDayScheduleDG.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@timeEnter", Convert.ToDateTime(eachDayScheduleDG.Rows[i].Cells[2].Value));
cmd.Parameters.AddWithValue("@timeExit", Convert.ToDateTime(eachDayScheduleDG.Rows[i].Cells[3].Value));
cmd.Parameters.AddWithValue("@costPerDay", getCostDays(eachDayScheduleDG.Rows[i].Cells[0].Value.ToString(), i));
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
MessageBox.Show("error: "+ ex);
}
}
I get the following error:
Procedure has too many arguments specified.
I know that it's inserting the first row without any errors.