سلام.من یه gridview دارم که از 3 تا جدول ازاطلاعات رو میاره.یه دکمه گداشتم برای حذف که سطری که انتخاب شده. سطر رو حذف می کنه ولی یه خطا می ده که عکسش رو گداشتم
دستورم اینه
if (e.CommandName == "delete")
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chk = GridView1.Rows[i].Cells[9].FindControl("CheckBox1") as CheckBox;
//int bookid = Convert.ToInt32(GridView1.SelectedRow.Cells[4].Text);
int bookid = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
//int basketid = Convert.ToInt32(GridView1.SelectedRow.Cells[5].Text);
int basketid = Convert.ToInt32(GridView1.Rows[i].Cells[5].Text);
if (chk.Checked)
{
//حذف می کند ولی بعد از حذف خطا می دهد
String str = string.Format("delete from t_relation_book_basket where bookid={0} and basketid={1}", bookid, basketid);
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["book-publisherConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand(str, con);
con.Open();
cmd.ExecuteNonQuery();
GridView1.DataBind();
con.Close();
}
کوئری که برای دیلیت کردن میسازید در SqlDeleteCommand مربوط به SqlDataSource تون قرار بدید.
SqlDataSource یک پراپرتی داره به اسم SqlDeleteCommand که برای دیلیت کردن به مقدار موجود در این نگاه میکنه . ارور شما هم اینه که این پراپرتی رو مقدار دهی نکردین.
چون جذول من join چندتا جدول هست، نمی تونم از کنترل اماده برای حذف استفاده کنم .باید دستی دکمه بگذارم و داخلش کد بگذارم.
کد بالا رو هم در رویداد gridview-rowcommand نوشتم.گفتم سطری که انتخاب شده رو حذف کنه. ولی خطا می ده!!!
حتی وقتی پر کردن gridview رو داخل pageloade صفحه و بدون sqldatasource هم انجام می دم باز error می ده!!
چون جذول من join چندتا جدول هست، نمی تونم از کنترل اماده برای حذف استفاده کنم .باید دستی دکمه بگذارم و داخلش کد بگذارم.
کد بالا رو هم در رویداد gridview-rowcommand نوشتم.گفتم سطری که انتخاب شده رو حذف کنه. ولی خطا می ده!!!
حتی وقتی پر کردن gridview رو داخل pageloade صفحه و بدون sqldatasource هم انجام می دم باز error می ده!!
دلیل ارور همونی هست که عرض کردم . اگر میبینید امکان دیلیت از طریق خود Sqldatasource رو ندارید . پیشنهاد میکنم یه view درست کنید متشکل از همین تیبلها به همین ترتیب که جوینش کردید . بعد در زمان آپدیت کردن اطلاعات gridview کافیه دیتاسورس گرید ویو رو برابر همین view قرار بدید.
اینطور دیگه مشکلات فعلی رو ندارید.
علاقه مندی ها (Bookmarks)