الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة بالبحث بين تاريخين

بدأه ..ن.. في 17 نوفمبر 2011 · 10 رد · 808 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

لدي بيانات مدخلة ومن بين البيانات كود يسجل التاريخ التي ارسلت به البيانات

البيانات كاملة انا عارضها بقريد فيو

أود البحث بالحصر بين تاريخين .. أي يضع التاريخين من .. الى وتكون التواريخ بدروب دوان ليست تتغذى من قاعدة البيانات

فكيف أضع الكود .. وهل يجب مسح الوقت اي اجعل الكود بحال ارسال الطب بدلا من datataim.now أضع date.today

أم لابأس به

اكرر المراد من البحث الحصر بين تاريخين محددين بدروب داون ليست

أتمنى المساعدة

#2

السلام عليكم

اللى فهمته انك هتجيب بيانات تملئ drop down list بعمود التاريخ لو اللى فمهته صح يبقى كدا التاريخ عبارة عن string

عموما شوف الكود

          1-  string qry = "select * from TableName where DataColumn >= '" + DateTime.Now.ToString("yyyy-MM-dd") + "' and DataColumn < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'";

          2-  DateTime begin = DateTime.Parse("string from drop down list own");
          3-  DateTime end = DateTime.Parse("string from drop down list tow");

          4  string qry2 = "select * from TableName where DataColumn >= '" + begin.ToString("yyyy-MM-dd") + "' and DataColumn < '" + end.AddDays(1).ToString("yyyy-MM-dd") + "'";

رقم واحد صيغة البحث بين تاريخن انا اخترت format عالمى هو yyyy-MM-dd وكدا التاريخ بدون ساعات ودقائق بداية البحث من يوم كذا إلى يوم أقل من اليوم الأخير + 1 يعنى بين تاريخين نفرض انك هتبحث بين 1-01-2011 حتى 31-01-2011 يبقى صيغة البحث أكبر من أو يساوى 1-01-2011 وأقل من 1-02-2011 كدا بين تاريخ بالظبط وبدون حساب الساعات منعاً للخربطة

أما إذا الموضوع إذا نوع البيانات لعمود التاريخ انت بتقول انك fill drop down list by date ممكن تستقبلها ك string بالكود دا DateTime.Parse("string from drop down list own");

#3

أهلا بك ياأخي ..

لا .. أنا صفحة للإضافة لقاعدة البيانات بصفحة ارسال الطلبات ومن بين الاعمدة .. وضعت كود إدخال التاريخ ببارامتر

com.Parameters.AddWithValue("@sdate", DateTime.Now);

بهذا الكود

كل الطلبات اعرضها بأداة قريد فيو .. بالطبع عملت صفحتين فرز .. أحدهم بأسماء المكاتب .. ونجحت معي

ماأريدة الان البحث بين تاريخين واليك الصفحة

سأضع دروب داون ليست إثنتين

من [دروب ] إلى [ دروب ] ثم زر إستعلام ... والناتج سيظهر بقريد فيو بعد الضغط

الدروب داون ليست الاثنتين تتغذى من قاعدة البيانات أي من التواريخ المضافة فقط من خلال ربط الدروب داون ليست بقاعدة البيانات لعرض جميع التواريخ

وضعت كودك الذي اضفته كله بزر الاستعلام .. طبعا مع تغيير .. ( اسم الحقل لدي هو sdate // وإسم الجدول ssend // والدروب ddldate 1 , و ddldate 2

بتنفيذ كود اجاب خطأ

Could not find control 'ddldate' in ControlParameter 'sdate'.

أهلا بك ياأخي ..

لا .. أنا صفحة للإضافة لقاعدة البيانات بصفحة ارسال الطلبات ومن بين الاعمدة .. وضعت كود إدخال التاريخ ببارامتر

com.Parameters.AddWithValue("@sdate", DateTime.Now);

بهذا الكود

كل الطلبات اعرضها بأداة قريد فيو .. بالطبع عملت صفحتين فرز .. أحدهم بأسماء المكاتب .. ونجحت معي

ماأريدة الان البحث بين تاريخين واليك الصفحة

سأضع دروب داون ليست إثنتين

من [دروب ] إلى [ دروب ] ثم زر إستعلام ... والناتج سيظهر بقريد فيو بعد الضغط

الدروب داون ليست الاثنتين تتغذى من قاعدة البيانات أي من التواريخ المضافة فقط من خلال ربط الدروب داون ليست بقاعدة البيانات لعرض جميع التواريخ

وضعت كودك الذي اضفته كله بزر الاستعلام .. طبعا مع تغيير .. ( اسم الحقل لدي هو sdate // وإسم الجدول ssend // والدروب ddldate 1 , و ddldate 2

بتنفيذ كود اجاب خطأ

Could not find control 'ddldate' in ControlParameter 'sdate'.

#4

السؤال انت بتيجب التاريخ من drop down list إذاى ؟

الكود دا كدا بجيب التاريخ من drop down list

  string drop1 = DateTime.Parse(ddldate1.SelectedItem.Text).ToString("yyyy-MM-dd") ;
            string drop2 = DateTime.Parse(ddldate2.SelectedItem.Text).ToString("yyyy-MM-dd") ;

بعد كدا استخدم المتغير drop1 , drop2 في query string

 string qry = "select * from ssend where sdate >= '" + drop1 + "' and sdate < '" + drop2 + "'";

لو في خطأ ياريت تكتب الكود بتاعك في الجزئية دى كاملاً علشان نشوف الخطأ فين

#5

احدهم علق كيف أكتب بهذا الشكل ولم أفهم مالمقصد .. شكراً كثيره لتعليقك أخي

#6

ارفقت صورة للصفحة ياصديقي ..

أخي الدروب داون ليست تكون ممتلئة بالتواريخ لأني قمت بربطها بقاعدة البيانات فهي تقوم بعرض الحقل sdate من الجدول

وكذلك الدروب الأخرى تعرض من قاعدة البيانات

القريد فيو التي تخرج بعد الاستعلام هي مشروطة بأن تعرض الطلبات اللاتي حالتهم " منجز " بالطبع بدون كود .. لأنها فقط عرض

الان وضعت الاكواد بزر الاستعلام وحال التنفيذ يخرج لي صفحة خطأ وأعتقد يطلب بارامتر .. وبيني وبينك أنا كنت أعتقد اني ساحتاج للبارامتر وجملة between

اتمنى أن لاأكون أجهدتك ياصديقي .. وجعله بموازين حسناتك

الصور بالمرفقات

post-250699-008135100 1321644196_thumb.p

post-250699-004482600 1321644625_thumb.p

المرفقات
صورة الصفحة.pngصورة الخطأ.png
#7

انا سؤالى مش بتجيب التاريخ من قاعدة البيانات وتملى drop down list إزاى انا فهمت انك خلاص انت جبت التواريخ وظهرتها في drop down list

لكن كان سؤالى بتحصل على قيمة التاريخ اللى موجود في drop down list ازاى يعنى المستخدم اختار تاريخ من drop list انت بتعرف المستخدم اختار تاريخ ايه دا سؤالى

ثانياً متشغلش بالك بجملة between الجملة اللى انا كتبتها قبل كدا شغاله من غير between و between تشتغل اللى الأثنين سواء مفيش مشكلة بينهم

ثالثاً جملة query مش محتاجة أى parameter خالص

هو انت جربت الكود دا

ياريت تكتب الكود وليست رسالة الخطأ

#8

هذا هو الكود الذي اضفته

protected void Button4_Click(object sender, EventArgs e)

    {


           string qry = "select * from ssend where sdate >= '" + DateTime.Now.ToString("yyyy-MM-dd") + "' and sdate < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'";

            DateTime begin = DateTime.Parse("string from ddldate1");
            DateTime end = DateTime.Parse("string from ddldate2");

            string qry2 = "select * from ssend where sdate >= '" + begin.ToString("yyyy-MM-dd") + "' and sdate < '" + end.AddDays(1).ToString("yyyy-MM-dd") + "'";





    }

تم تعديل هذه المشاركة بواسطة ..ن.. في 19 نوفمبر 2011 في 01:03

#9

غير الكود بتاعك بالكود دا

 string drop1 = DateTime.Parse(ddldate1.SelectedItem.Text).ToString("yyyy-MM-dd") ;
string drop2 = DateTime.Parse(ddldate2.SelectedItem.Text).AddDays(1).ToString("yyyy-MM-dd") 
string qry = "select * from ssend where sdate >= '" + drop1 + "' and sdate < '" + drop2 + "'";

غير الكود بالكود دا

على اساس ان drop down list الأولى أسمها ddldate1

و drop down list التانية أسمها ddldate2

لو اسمائهم غير كدا غير اسمائهم في الكود دا

#10
Principle كتب:

غير الكود بتاعك بالكود دا

 string drop1 = DateTime.Parse(ddldate1.SelectedItem.Text).ToString("yyyy-MM-dd") ;
string drop2 = DateTime.Parse(ddldate2.SelectedItem.Text).AddDays(1).ToString("yyyy-MM-dd") 
string qry = "select * from ssend where sdate >= '" + drop1 + "' and sdate < '" + drop2 + "'";

غير الكود بالكود دا

على اساس ان drop down list الأولى أسمها ddldate1

و drop down list التانية أسمها ddldate2

لو اسمائهم غير كدا غير اسمائهم في الكود دا

أهلا بك ياأخي .. الكود لازال لاينطبق

والخطأ يطالبني ببارا متر .. كما ذكرته بالسابق

أعتقد المشكلة اما بربط الدروب دوان لست بالقاعده للبيانات

أم بربطي للقريد فيو بقاعدة البيانات

أتمنى بحال تفرغك أن تضع لي كود لنموذجي هذا الذي اضفته اعلاه

أو قد تكون المشكلة لأني أخزن بالطلب التاريخ بأمر datetaime.now فيقوم بتخزين الوقت للطلب حتى بالوقت

أملي أن تضع الكود ان كان بالبوتون أو بالقريد فيو

وهل اربطها بالاتصال بكوماند وريدر أم بلا

وأشكر لك تفاعلك الذي ينم عن شخص ينتفع به .. وسأدعو لك مليا

#11

أطلت ياصاحبي .. أأمل أن تكون بخير

مواضيع مشابهة