PDA

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



niloofar1234
پنج شنبه 25 اردیبهشت 1393, 10:59 صبح
سلام
من با استفاده از dropdownlist دو تا تاریخ می گیرم و یه گریدویو گذاشتم که وقتی تاریخ رو انتخاب میکنم با زدن دکمه، گریدویو فقط تاریخ مورد نظر رو نشون بده.البته وقتی صفحه load میشه گریدویو همه تاریخهارو نشون میده چون واسش connection ساختم.
اما نمیدونم چرا وقتی دکمه رو می زنم هیچی نشون نمیده.کسی هست کمکم کنه؟نوع فیلد تاریخ رو هم datetime گرفتم
اینم کدامه:
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 ImageButton1_Click1(object sender, ImageClickEventArgs e)
{
string a = DropDownList3.Text + "/" + DropDownList2.Text + "/" + DropDownList1.Text;
Label12.Text = a;
string b = DropDownList6.Text + "/" + DropDownList5.Text + "/" + DropDownList4.Text;
Label13.Text = b;
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 CONVERT(DateTime,replace(convert(DateTime,[NewsDate]),'-','')) >= CONVERT(bigint,@d1) AND CONVERT(bigint,replace(convert(DateTime,[NewsDate]),'-','')) <= CONVERT(bigint,@d2);";
SqlCommand cmd = new SqlCommand(query, sqlcon);
cmd.Parameters.AddWithValue("@d1", a1.ToString("yyyyMMdd"));
cmd.Parameters.AddWithValue("@d2", b1.ToString("yyyyMMdd"));
sqlcon.Open();
SqlDataReader dr = cmd.ExecuteReader();
//GridView1.DataSource = dr;
GridView1.DataBind();

sqlcon.Close();

rezadana
پنج شنبه 25 اردیبهشت 1393, 12:02 عصر
یک بار دیتا سورس گریدویو رو خالی بزارید که موقع لود صفحه اطلاعات رو نشون نده فقط موقع کلیک دکمه بتونه اطلاعات رو نشون بده ببین چ عکس العملی داره. اگر پیغام خطایی میده . پیغام خطاشو اینجا بزار تا راهنماییتون کنیم.

ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ
www.rezalynda.rzb.ir

niloofar1234
پنج شنبه 25 اردیبهشت 1393, 12:21 عصر
اصلا هیچ چیزی رو نشون نمیده، انگار اصلا اعمال نمیشه
اگه کمکم کنید که حل بشه که واقعا ممنونم

rezadana
پنج شنبه 25 اردیبهشت 1393, 16:13 عصر
پیغام خطایی رو که میده بزار اینجا.

niloofar1234
پنج شنبه 25 اردیبهشت 1393, 16:27 عصر
اصلا خطا نمیده