PDA

View Full Version : عمل update در gridview



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);

}
}

e-shahshahani
جمعه 26 بهمن 1386, 19:39 عصر
برای بدست آوردن مقدار ستون n ام ببین این کار میکنه :

e.NewValues[n]

elahe1364
یک شنبه 28 بهمن 1386, 10:03 صبح
نه اینجوری هم نشد.
اگه ممکنه یکی لطف کنه یه نمونه کد برا حذف و ویرایش در gridview به زبان C# بذاره.
ممنون میشم.

e-shahshahani
یک شنبه 28 بهمن 1386, 10:07 صبح
بهترین کار اینه که توی msdn بگردی. حتما اینجا هستش.
برای جستجوی بیشتر یه سری هم به google بزن.

موفق باشی.