PDA

View Full Version : مشکل در آپدیت دیتا گرید



zahracomputer
چهارشنبه 25 مهر 1386, 23:03 عصر
لام و خسته نباشید
من برای آپدیت دیتا گرید کدهای زیر را به کار بردم ولی در متغیر newname همان مقدار قبلی را قرار میدهد و آپدیت انجام نمی شود؟


protected void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = e.Item.ItemIndex;
sqlsel = "select * from test";
SqlCommand cmd = new SqlCommand(sqlsel, cnnSel);
cnnSel.Open();
DataGrid1.DataSource=cmd.ExecuteReader();
DataGrid1.DataBind();
cnnSel.Close();
}
protected void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
TextBox textName = (TextBox)e.Item.Cells[3].Controls[0];
string newname;
newname =textName.Text;
Label1.Text = newname;
string strSql;
strSql = "update test set name=@name where stno="+e.Item.Cells[2].Text;
SqlCommand cmdSql = new SqlCommand(strSql,cnnSel);
cmdSql.Parameters.Add("@name", newname);
cnnSel.Open();
cmdSql.ExecuteNonQuery();
cnnSel.Close();
DataGrid1.EditItemIndex= -1;
sqlsel = "select * from test";
SqlCommand cmd = new SqlCommand(sqlsel, cnnSel);
cnnSel.Open();
DataGrid1.DataSource = cmd.ExecuteReader();
DataGrid1.DataBind();
cnnSel.Close();
}

babak23
پنج شنبه 26 مهر 1386, 08:52 صبح
با آزمون خطا این مشکل را میشه حل کرد ابتدا از یک مقدار ثابت استفاده کن

مثل
strSql = "update test set name="2454" where stno="+e.Item.Cells[2].Text

اگه مشکلی در ذخیره نداشتی جای این دو دستور را عوض کن
ابتدا این دستور را بنویس
cmdSql.Parameters.Add("@name", newname);
بعد هم این
strSql = "update test set name=@name where stno="+e.Item.Cells[2].Text

و مورد بعدی هم شرط دستور آپدیت هست که ممکنه هیچوقت برقرار نباشه
و .... خیلی از موارد دیگه؟

zahracomputer
پنج شنبه 26 مهر 1386, 13:31 عصر
سلام دوست عزیز
ممنون از توجهتون . ولی من برای تست برنامه مقدار newname را در یک lable چاپ کردم که همان مقدار اولی را نشان می دهد.
با تشکر

zahracomputer
پنج شنبه 26 مهر 1386, 19:22 عصر
سلام
ممنون از توجه همه شما دوستان عزیز. ایراد کار از بی دقتی خودم بود لازم بود در page_load کد

if (!IsPostBack)

را قرار بدم تا برنامه درست اجرا بشه.
با تشکر