PDA

View Full Version : چطور در پایگاه داده وقتی بر روی دکمه پاک کردن کلیک می کنم فایل آپلود شده هم پاک شود؟



masoudsalahi
یک شنبه 23 فروردین 1394, 00:42 صبح
سلامی دوباره بر دوستان و اساتید
دوستان من یک گرید ویو دارم برای نمایش اطلاعات و یک دکمه جدا برای حذف موارد انتخاب شده (از CheckBox استفاده کردم) وقتی بر روی دکمه حذف کلیک می کنم موارد انتخاب شده به درستی حذف میشه اما فایلی که آپلود شده در پوشه میمونه این کد من ببینید متوجه مشید :


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Displaying the Data
showData();
//Adding an Attribute to Server Control(i.e. btnDeleteRecord)
btnDeleteRecord.Attributes.Add("onclick", "javascript:return DeleteConfirm()");
}
}
protected void showData()
{
DataTable DT = new DataTable("DT");
DT.Columns.Add("شناسه ");
DT.Columns.Add("عنوان محصول");
DT.AcceptChanges();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\PRODUCTDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = new SqlCommand("select productid , subject from tblproduct Where username = @username ORDER BY productid DESC", con);
con.Open();
cmd.Parameters.AddWithValue("@username", User.Identity.Name);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
DT.Rows.Add(new string[] { reader["productid"].ToString(), reader["subject"].ToString(), });
}
reader.Close();
cmd.Dispose();
con.Close();
DataGridView1. DataSource = DT;
DataGridView1.DataBind();
}
protected void DeleteRecord(int productid)
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\PRODUCTDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand com = new SqlCommand("delete from tblproduct where productid=@productid", con);
com.Parameters.AddWithValue("@productid", productid);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
protected void btnDeleteRecord_Click(object sender, EventArgs e)
{
foreach (GridViewRow grow in DataGridView1.Rows)
{
CheckBox chkdel = (CheckBox)grow.FindControl("chkDel");
if (chkdel.Checked)
{
int productid = Convert.ToInt32(grow.Cells[1].Text);
DeleteRecord(productid);
}
}
showData();
}

دکمه btnDeleteRecord شناسه رکورد های انتخاب شده را بدست میاره و حذف میکنه اما فقط رکورد ها اینم کد حذف فایل اما هر تور که امتحان میکنم جواب نمیده نمی دونم چطور استفاده کنم!


System.IO.File.Delete(Server.MapPath("~")& "Upload/" & fileName)

Hamid2547
یک شنبه 23 فروردین 1394, 08:37 صبح
اول سعی کنید کد مربوط به پاک کردن رو در رویداد مربوطه بنویسید، فکر میکنم گرید ویو رویداد ItemDeleting داره، بعد یه بریک پوینت بذارید روی خطی که فایل رو پاک میکنه ببینید چی ارسال میشه بهش، نکته دیگه اینکه این کدی که گذاشتید از نظر دستوری مشکل داره، & برای VB استفاده میشه نه سی شارپ:

System.IO.File.Delete(Server.MapPath("~") + "Upload/" + fileName)

mamad_za
یک شنبه 23 فروردین 1394, 23:48 عصر
if (dt.Rows.Count>0)
{
System.IO.File.Delete(Request.PhysicalApplicationP ath + "images/Gallery/" + dt.Rows[0]["PicName"].ToString());
}

kamranetemadi
سه شنبه 25 فروردین 1394, 20:18 عصر
دوست عزیز شما قبل از حذف رکورد باید آدرسی که برای فایل ثبت شده رو بخونید و با دستوری که نوشیتید فایل با اون آدرس رو حذف کنید