PDA

View Full Version : سوال: حذف یک پست بعد از یک زمان مشخص



majesticsoft
چهارشنبه 31 خرداد 1391, 20:30 عصر
سلام دوستان
می خوام تو سایتم امکانی بذارم که خبرهای سایت به طور اتوماتیک بعد از 30 روز حذف بشه.
لطفا راهنمایی کنین
به فکر خودم رسیده که یه فیلد تاریخ به جدول اضافه کنم و بعد سی روز حذف شه.
حالا چجور این سی روز رو محاسبه کنه اونم نمیدونم

crazy_1892
چهارشنبه 31 خرداد 1391, 20:45 عصر
دوست عزیز یک تاریخ انقضا برای پست در نظر بگیر موقع فرخوانی تاریخ را با تاریخ جاری چک کن

majesticsoft
چهارشنبه 31 خرداد 1391, 21:00 عصر
ممنون از crazy_1892
کسی از دوستان نیس بیشتر توضیح بده؟

fakhravari
چهارشنبه 31 خرداد 1391, 22:25 عصر
http://barnamenevis.org/showthread.php?334127-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AA%D8%B1%DB%8C%D9%86-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7-%D8%A8%D9%87-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%A7%D9%86&p=1473038&viewfull=1#post1473038
شما باید تاریخ هر خبر را با یه حلقه بگیرید و با کلاس DateTime برسی کنید که چند روز از درج این خبر گذشته است
بعد ID خبر را در یه ارایه بریزید و بعد یه تابع Delete بنویسید و ID بهش بدین
http://www.csharp-examples.net/string-format-datetime/

fakhravari
پنج شنبه 01 تیر 1391, 01:21 صبح
#region محاسبه زمان
public static string Yare_Persian(DateTime Now)
{
PersianCalendar pc = new PersianCalendar();
return pc.GetYear(Now).ToString();
}
public static string Day_Persian(DateTime Now)
{
PersianCalendar pc = new PersianCalendar();
return pc.GetDayOfMonth(Now).ToString();
}
public static string Month_Persian(DateTime Now)
{
PersianCalendar pc = new PersianCalendar();
return pc.GetMonth(Now).ToString();
}
private static string Dt(string ch)
{
if (ch.Length.ToString() == "1")
{
return "0" + ch;
}
else
{
return ch;
}

}
public static string[] ShamsiDate(DateTime date)
{
string[] test = { Yare_Persian(date), Dt(Month_Persian(date)), Dt(Day_Persian(date)) };
return test;
}
#endregion
#region اطلاعات جدید
public DataTable All_Topik()
{
SqlConnection con = new SqlConnection(@"Data Source=COMPUTER1\SQLEXPRESS;Initial Catalog=samplesql;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT top(3) Message,Subject,Date,TopicID from B_Topics order by TopicID desc";
con.Open();

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();

da.Fill(dt);
con.Close();
return dt;
}
#endregion
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = All_Topik();
for (int i = 0; i < dt.Rows.Count; i++)
{
string[] t1 = ShamsiDate(Convert.ToDateTime(dt.Rows[i]["Date"])); //ساعت پست مطلب
string[] t2 = ShamsiDate(DateTime.Now); // ساعت روز جاری

// سال ماه روز
Int32 c = Int32.Parse(t1[2]) + Int32.Parse(t1[1]) + Int32.Parse(t1[0]); //محاسبه ساعت پست
Int32 b = Int32.Parse(t2[2]) + Int32.Parse(t2[1]) + Int32.Parse(t2[0]); //محاسبه روز جاری
Int32 rr = b - c;

if (rr >= 30)
{
test = test + dt.Rows[i]["TopicID"].ToString() + ";";
}
c = b = rr = 0;
}


string[] idlist = test.Split(';');
if (idlist.Length > 0)
{
SqlConnection con1 = new SqlConnection(@"Data Source=COMPUTER1\SQLEXPRESS;Initial Catalog=samplesql;Integrated Security=True");
con1.Open();
for (int i = 0; i < idlist.Length; i++)
{
try
{
SqlCommand cmd1 = new SqlCommand("DELETE FROM [B_Topics] WHERE [TopicID] = @TopicID", con1);
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.Add("@TopicID", SqlDbType.Int).Value = idlist[i];
cmd1.ExecuteNonQuery();
}
catch
{ }
}

con1.Close();

}
}


شما میتوانید کل کد های من را در dll اقای سالار خلیل زاده بزارید که به صورت Dynamic اطلاعات سایت برسی می شود.
http://barnamenevis.org/showthread.php?334127