elahe1364
جمعه 26 بهمن 1386, 00:13 صبح
سلام دوستان
من برای عمل ویرایش در gridview از کد زیر استفاده می کنم ولی موقع update که میخوام اطلاعات سلول های گرید رو به پارامتر هام پاس بدم همشون مقدار قبلی رو دارند و مقدار جدید وارد شده در حالت ویرایش داخل سلول ها نیست.
کدهای آقای راد هم دیدم ولی خوب اونا با vb هست من زیاد سر در نمی یارم.
ممنون میشم کمک کنید.
void BindToGrid()
{
SqlConnection Cn = new SqlConnection("server=localhost;Integrated Security=SSPI;Initial Catalog=Tel;");
Cn.Open();
SqlCommand Cmd = new SqlCommand("showall", Cn);
SqlDataAdapter Da = new SqlDataAdapter(Cmd);
DataTable Dt = new DataTable();
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.ExecuteNonQuery();
Da.Fill(Dt);
Cn.Close();
GridView1.DataSource = Dt;
GridView1.DataMember = Dt.ToString();
GridView1.DataBind();
}
************************************************** *************
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindToGrid();
}
************************************************** ***************
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
try
{
SqlConnection Cn = new SqlConnection("server=localhost;Integrated Security=SSPI;Initial Catalog=Tel;");
SqlCommand Cmd = new SqlCommand("update_Tel", Cn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
Cmd.Parameters.Add("@FName", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
Cmd.Parameters.Add("@LName", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
Cmd.Parameters.Add("@Tel1", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text;
Cmd.Parameters.Add("@Tel2", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text;
Cmd.Parameters.Add("@Mob1", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text;
Cmd.Parameters.Add("@Mob2", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text;
Cmd.Parameters.Add("@Email", SqlDbType.VarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]).Text;
Cmd.Parameters.Add("@Fax", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[8].Controls[0]).Text;
Cmd.Parameters.Add("@Address", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[10].Controls[0]).Text;
Cn.Open();
Cmd.ExecuteNonQuery();
Cn.Close();
GridView1.EditIndex = -1;
BindToGrid();
}
catch (SqlException Err)
{
Response.Redirect(Err.Message);
}
}
من برای عمل ویرایش در gridview از کد زیر استفاده می کنم ولی موقع update که میخوام اطلاعات سلول های گرید رو به پارامتر هام پاس بدم همشون مقدار قبلی رو دارند و مقدار جدید وارد شده در حالت ویرایش داخل سلول ها نیست.
کدهای آقای راد هم دیدم ولی خوب اونا با vb هست من زیاد سر در نمی یارم.
ممنون میشم کمک کنید.
void BindToGrid()
{
SqlConnection Cn = new SqlConnection("server=localhost;Integrated Security=SSPI;Initial Catalog=Tel;");
Cn.Open();
SqlCommand Cmd = new SqlCommand("showall", Cn);
SqlDataAdapter Da = new SqlDataAdapter(Cmd);
DataTable Dt = new DataTable();
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.ExecuteNonQuery();
Da.Fill(Dt);
Cn.Close();
GridView1.DataSource = Dt;
GridView1.DataMember = Dt.ToString();
GridView1.DataBind();
}
************************************************** *************
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindToGrid();
}
************************************************** ***************
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
try
{
SqlConnection Cn = new SqlConnection("server=localhost;Integrated Security=SSPI;Initial Catalog=Tel;");
SqlCommand Cmd = new SqlCommand("update_Tel", Cn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
Cmd.Parameters.Add("@FName", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
Cmd.Parameters.Add("@LName", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
Cmd.Parameters.Add("@Tel1", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text;
Cmd.Parameters.Add("@Tel2", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text;
Cmd.Parameters.Add("@Mob1", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text;
Cmd.Parameters.Add("@Mob2", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text;
Cmd.Parameters.Add("@Email", SqlDbType.VarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]).Text;
Cmd.Parameters.Add("@Fax", SqlDbType.Text).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[8].Controls[0]).Text;
Cmd.Parameters.Add("@Address", SqlDbType.NVarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[10].Controls[0]).Text;
Cn.Open();
Cmd.ExecuteNonQuery();
Cn.Close();
GridView1.EditIndex = -1;
BindToGrid();
}
catch (SqlException Err)
{
Response.Redirect(Err.Message);
}
}