منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] البحث بالتاريخ بقاعدة البيانات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] البحث بالتاريخ بقاعدة البيانات (/showthread.php?tid=23963)

الصفحات: 1 2


البحث بالتاريخ بقاعدة البيانات - محمد اسماعيل - 23-02-18

استخدمت الكود التالي للبحث عن تاريخ بقاعدة البيانات وحذف كل الحقول
ولا يعمل معي


كود :
 ElseIf IsDate(TextBox1.Text.Trim) = True Then
               Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE DATENOW_TB  LIKE '%" & Trim$(Format(TextBox1.Text, "dd/MM/yyyy")) & "%'", con)
               con.Open()
               DataSet1.Clear()
               DataAdapter.Fill(DataSet1, "TB1")
               
               con.Close()



RE: البحث بالتاريخ بقاعدة البيانات - طالب برمجة - 23-02-18

PHP كود :
Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE (DATENOW_TB=@d) "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d"CDate(TextBox1.Text)) 



RE: البحث بالتاريخ بقاعدة البيانات - محمد اسماعيل - 23-02-18

(23-02-18, 10:05 PM)طالب برمجة كتب :
PHP كود :
Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE (DATENOW_TB=@d) "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d"CDate(TextBox1.Text)) 

الف شكر علي ردك وشفي اللّة وعفي عن ابنتك وافرح قلبك بشفاؤها

- الطريقة دية بتتوجب وضع التاريخ كامل مش جزء منة
08/06/2017

- وانا عايز بحث لو بجزء من التاريخ 8 مثلا  6 مثلا يظهر شهر او ايام  عشان كدة استخدمت trim للبحث باي جزء او التاريخ كامل


RE: البحث بالتاريخ بقاعدة البيانات - طالب برمجة - 23-02-18

أشكرك أخي محمد على مشاعرك الجميلة.

ضع عدة أمثلة لكل الاحتمالات للجزء الذي تقصدة فقد تكون طريقة Between هي الحل


RE: البحث بالتاريخ بقاعدة البيانات - محمد اسماعيل - 23-02-18

(23-02-18, 10:18 PM)طالب برمجة كتب : أشكرك أخي محمد على مشاعرك الجميلة.

ضع عدة أمثلة لكل الاحتمالات للجزء الذي تقصدة فقد تكون طريقة Between هي الحل

ادام اللة المحبة بيننا

التاريخ بيكون بالشكل دة

08/04/2015 03:36:01 م

15/08/2017 03:36:01 م

01/12/2017 03:36:01 م


يبقي لو 2017 يفلتر للسنوات 2017  , ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا


RE: البحث بالتاريخ بقاعدة البيانات - طالب برمجة - 23-02-18

هل الوقت غير ضروري؟

السنة لأنها 4 أرقام واضحة،
لكن وضح "ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا"!
فكيف ستفرق بأن المقصود شهروليس يوم خصوصا لو كان الرقم من 1 الى 12 فهي موجود في الشهر واليوم؟


RE: البحث بالتاريخ بقاعدة البيانات - محمد اسماعيل - 23-02-18

(23-02-18, 10:31 PM)طالب برمجة كتب : هل الوقت غير ضروري؟

السنة لأنها 4 أرقام واضحة،
لكن وضح "ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا"!
فكيف ستفرق بأن المقصود شهروليس يوم خصوصا لو كان الرقم من 1 الى 12 فهي موجود في الشهر واليوم؟

لا الوقت غير ضروري الايام او الشهر او السنة

اة  الشهر كدة مقطعين اسف  08/04

الايام مقطع واحد 08


RE: البحث بالتاريخ بقاعدة البيانات - طالب برمجة - 23-02-18

لكن عند استخدام اليو والشهر سيحضر لك من جميع السنوات أم تريد ان تكون السنة في حالة عدم كتابة ان تكون السنة الحالية؟

طبعا كثرة الاسئلة مفيدة للتوضيح قبل البدأ في التفكير في الكود


RE: البحث بالتاريخ بقاعدة البيانات - محمد اسماعيل - 23-02-18

(23-02-18, 10:43 PM)طالب برمجة كتب : لكن عند استخدام اليو والشهر سيحضر لك من جميع السنوات أم تريد ان تكون السنة في حالة عدم كتابة ان تكون السنة الحالية؟

طبعا كثرة الاسئلة مفيدة للتوضيح قبل البدأ في التفكير في الكود

وصلنا لمرجلة Between

خليها بطريقة Between افضل

الكود هيبقي مجهد بالشكل الي طلبتة ولا اريد اكثر عليك


RE: البحث بالتاريخ بقاعدة البيانات - طالب برمجة - 24-02-18

اعتذر اليك للظرف السابق ذكره

لكن Between تأخذ تاريخين،
في النهاية يمكن بالبرمجة تحقيق ما تريد،

هذا الكود يعطيك ثلاث احتمالات

الاول
لو كتبت التاريخ كامل في مربع النص مثلا 23/2/2018
فسيصبح التاريخ الأول 23/2/2018 والتاريخ الثاني 23/2/2018 متطابقان
أي كانها ليست عملية بين تاريخين

الثاني
لو كتبت 2017 فيتم التعرف عليه على انه سنة
فسيصبح التاريخ الأول بداية السنة 1/1/2017 والتاريخ الثاني نهاية السنة 31/12/2017
هنا العملية بين تاريخين

الثالث
لو كتبت 29/5 وكانت السنة الحالية (2018) بدون كتابتها
فسيصبح التاريخ الأول 29/5/2018 والتاريخ الثاني 29/5/2018
أي انها نفس اليوم المحدد للسنة الحالية وكان العملية ليست بين تاريخين

PHP كود :
Dim d1 As Date Todayd2 As Date Todaytxt As String TextBox1.Text.Trim

If IsDate(txtThen
    d1 
CDate(txt)
 
   d2 CDate(txt)

ElseIf 
IsNumeric(txtAndAlso Val(txt) > 1900 Then
    d1 
= New Date(Val(txt), 11)
 
   d2 = New Date(Val(txt), 1231)

ElseIf 
txt.Split("/").Count 2 Then
    Dim s
() = txt.Split("/")
 
   d1 = New Date(Year(Today), Val(s(1)), Val(s(0)))
 
   d2 = New Date(Year(Today), Val(s(1)), Val(s(0)))

End If

Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE DATENOW_TB BETWEEN @d1 AND @d2 "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d1"d1)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d2"d2)

DataSet1.Clear()
DataAdapter.Fill(DataSet1"TB1"