ورود

View Full Version : سوال: جستجو بین دو تاریخ



niloofar1234
سه شنبه 06 خرداد 1393, 13:38 عصر
سلام
من می خوام بین دو تاریخ توو دیتابیس جستجو کنم
نوع فیلد تاریخم date time.
این کدارو هم نوشتم اما اصلا خروجی نمیده
کسی هست کمک کنه؟

public static DateTime ConvertPersToGregDate(string str = "")
{
DateTime _ret = DateTime.Now;
if (System.Text.RegularExpressions.Regex.IsMatch(str, "[0-9]{4}/[0-9]{2}/[0-9]{2}"))
{
try
{
DateTime dt = new DateTime(Convert.ToInt32(str.Split('/')[0]),
Convert.ToInt32(str.Split('/')[1]), Convert.ToInt32(str.Split('/')[2]));
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
_ret = new DateTime(gc.GetYear(dt), gc.GetMonth(dt), gc.GetDayOfMonth(dt),
new System.Globalization.PersianCalendar());
}
catch { _ret = DateTime.Now; }
}
return _ret;
}

protected void Button1_Click(object sender, EventArgs e)
{
string a = DropDownList1.Text + "/" + DropDownList2.Text + "/" + DropDownList3.Text;
string b = DropDownList4.Text + "/" + DropDownList5.Text + "/" + DropDownList6.Text;
DateTime a1 = ConvertPersToGregDate(a.ToString());
DateTime b1 = ConvertPersToGregDate(b.ToString());
String conString = ConfigurationManager.ConnectionStrings["VirtualLearningConnectionString"].ToString();
SqlConnection sqlcon = new SqlConnection(conString);
string query = "Select * from T_news WHERE NewsDate between @d1 and @d2;";
SqlCommand cmd = new SqlCommand(query, sqlcon);
cmd.Parameters.AddWithValue("@d1", a1.ToString("ddMMyyyy"));
cmd.Parameters.AddWithValue("@d2", b1.ToString("ddMMyyyy"));
sqlcon.Open();
SqlDataReader dr = cmd.ExecuteReader();
//GridView1.DataSource = dr;
GridView1.DataBind();
sqlcon.Close();

}

majidnazari65
سه شنبه 06 خرداد 1393, 18:00 عصر
سلام.
تاریخهای a1 و b1 رو با فرمت yyyy/MM/dd به string تبدیل کن. خط GridView1.DataSource = dr رو هم یادت باشه از حالت توضیح خارج کنی.