PDA

View Full Version : مشکل حذف از datalist



mis.shafiee
چهارشنبه 12 تیر 1392, 12:33 عصر
سلام

من یک دیتالیست دارم که به آن یک linkbotton بری پاک کردن هر سطر اضافه کرده ام.
connection را اضافه کردم و بعدش کد زیر را نوشته ام:


protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
if(e.CommandName.ToString()=="delete"){
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename='E:\shafiei\V isual Studio 2010\WebSites\p1\App_Data\mydb.mdf';Integrated Security=True;User Instance=True";
SqlCommand cdl = new SqlCommand();
cdl.Connection = conn;
conn.Open();
int NewsId = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
cdl.CommandText = "delete from tblNews where NewsId='" + NewsId + "'";
cdl.ExecuteNonQuery();
DataList1.DataBind();
conn.Close();
}



}
وقتی که برنامه را اجرا می کنم و گزینه delete را می زنم از این خط ایراد میگیرد:

int NewsId = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
ارورش هم به صورت زیر است:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
ممنونم از راهنماییتون

ایمان مدائنی
چهارشنبه 12 تیر 1392, 12:37 عصر
آی دی رو روی CommanArgument کنترل linkbotton بزار بعد میتونی با استفاده از کد زیر راحت بدستش بیاری


int NewsId = Convert.ToInt32(e.CommandArgument.ToString());

mis.shafiee
چهارشنبه 12 تیر 1392, 14:28 عصر
سلام
واقعا ببخشید من دوباره سوال می کنم. من تازه کار با asp را شروع کردم.أٌٍدر CommanArgument، من NewsId را قرار دادم و کدی که شما گذشته اید را به جای همون خطی که ازم ایراد می گرفت قرار دادم ولی باز هم ایراد زیر را گرفت:

Input string was not in a correct format.

mahdi_rafatjah
جمعه 21 تیر 1392, 23:07 عصر
داداش شما میتونید به دیتا لیست یا گرید ویو (خودم کار کردم) دکمه حذف رو اضافه کنید کد هم ننویسید فقط یه فیلد رو پرایمری کنید و دیتا سورس رو برید تو تظیمش تو ادونس قابلیت رو اضافه کنید