منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[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=21285)

الصفحات: 1 2


مشكلة البحث بين تاريخيين - مبرمج مبتدا - 05-08-17

السلام عليكم ورحمة الله وبركاته

اخواني انا عملت برنامج بسيط عن البحث بين تاريخيين 

ولكن يظهر لي خطا لما اضغط على زر البحث ارفقت صورة الخطا 


وهذا الكود اللي استخدمته 

كود:

Imports System.Data.OleDb

Public Class Form1
   Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mydata.accdb")
   Dim da As New OleDbDataAdapter
   Dim dt As New DataTable

   Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       da = New OleDbDataAdapter("select * from table1", cn)
       da.Fill(dt)
       Me.DataGridView1.DataSource = dt

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       dt.Clear()
       da = New OleDbDataAdapter("select * from table1 where data_1 between #" & DateTimePicker1.Value & "# and #" & DateTimePicker2.Value & " #", cn)
       da.Fill(dt)
       Me.DataGridView1.DataSource = dt
   End Sub
End Class



RE: مشكلة البحث بين تاريخيين - مبرمج مبتدا - 05-08-17

للاسف مازالت المشكلة نفسها

تفضل هذا الملف كامل للبرنامج

http://www.up-00.com/?Kllx


RE: مشكلة البحث بين تاريخيين - ابو ليلى - 05-08-17

السلام عليكم و رحمة الله و بركاته
لتحصل على تنسيق التاريخ استخدم 
PHP كود :
DateTimePiker1.Value.Date 




RE: مشكلة البحث بين تاريخيين - سعود الشامان - 05-08-17

حملت مشروعك و البحث شغال من افضل ما يكون

المشكلة لديك من صيغة التاريخ القصير والطويل في جهازك , اجعلهم بهذا الشكل




ما فهمته ان البرنامج يقرا من تاريخ الجهاز وعند الإختلاف تظهر مشكله


نتمنى من أساتذتنا شرح تجاوز هذه المشكله


RE: مشكلة البحث بين تاريخيين - مبرمج مبتدا - 05-08-17

سويت نفس اعداداتك باقي المشكله موجوده

(05-08-17, 06:10 PM)khodor1985 كتب : لقد تم معالجة المشروع بناء لطلبك :
المشروع بعد التعديل :

الكود بعد التعديل عليه :
PHP كود :
sqlstr "Select * From table1 Where data_1 between @start and  @end"
       cmd = New OleDbCommand(sqlstrcn)
       cmd.Parameters.Add("@start"OleDbType.Date).Value DateTimePicker1.Value.Date
       cmd
.Parameters.Add("@end"OleDbType.Date).Value DateTimePicker2.Value.Date
       da 
= New OleDbDataAdapter(cmd)
       dt = New DataTable("table1")
       dt.Clear()
       da.Fill(dt)

       Me.DataGridView1.DataSource dt 

جاري التجربه وراجع

أتمنى لك التوفيق

(05-08-17, 06:10 PM)khodor1985 كتب : لقد تم معالجة المشروع بناء لطلبك :
المشروع بعد التعديل :

الكود بعد التعديل عليه :
PHP كود :
sqlstr "Select * From table1 Where data_1 between @start and  @end"
       cmd = New OleDbCommand(sqlstrcn)
       cmd.Parameters.Add("@start"OleDbType.Date).Value DateTimePicker1.Value.Date
       cmd
.Parameters.Add("@end"OleDbType.Date).Value DateTimePicker2.Value.Date
       da 
= New OleDbDataAdapter(cmd)
       dt = New DataTable("table1")
       dt.Clear()
       da.Fill(dt)

       Me.DataGridView1.DataSource dt 



أتمنى لك التوفيق
للاسف الملف معطوب عند التحميل




RE: مشكلة البحث بين تاريخيين - أبو نوره - 05-08-17

مرحبا اخي

جرب هذا التعديل
PHP كود :
Imports System.Data.OleDb

Public Class Form1
    Dim cn 
As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mydata.accdb")
 
   Dim da As New OleDbDataAdapter
    Dim dt 
As New DataTable

    Private Sub DataGridView1_CellContentClick
(ByVal sender As System.ObjectByVal e As System.Windows.Forms.DataGridViewCellEventArgsHandles DataGridView1.CellContentClick

    End Sub

    Private Sub Form1_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        da 
= New OleDbDataAdapter("select * from table1"cn)
 
       da.Fill(dt)
 
       Me.DataGridView1.DataSource dt

    End Sub

    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        dt
.Clear()
 
       da = New OleDbDataAdapter("select * from table1 where data_1 between @fromdate and @todate"cn)
 
       da.SelectCommand.Parameters.AddWithValue("@fromdate"DateTimePicker1.Value.Date)
 
       da.SelectCommand.Parameters.AddWithValue("@todate"DateTimePicker2.Value.Date)
 
       da.Fill(dt)
 
       Me.DataGridView1.DataSource dt
    End Sub
End 
Class 



RE: مشكلة البحث بين تاريخيين - سعود - 05-08-17

اجعل تنسيق التاريخ فالقاعدة على تاريخ قصير
واكتب بالكود
dtp.value.toshortdatestring

كود :
       da = New OleDbDataAdapter("select * from table1 where [data_1] between #" & DateTimePicker1.Value.ToShortDateString & "# and #" & DateTimePicker2.Value.ToShortDateString & "#", cn)



RE: مشكلة البحث بين تاريخيين - محمود بكرى - 05-08-17

السلام عليكم ورحمة الله
واضح من الرسالة ان التاريخ لديك تاريخ هجري وهو غير متوافق مع البحث كقيمة منطقية للتاريخ ولتفادي هذه المشكلة فقد جعلت التاريخ بالتاريخ الميلادي
فحمل المرفق وجرب وابلغنا بالنتيجة
والله الموفق
[attachment=15063]


RE: مشكلة البحث بين تاريخيين - مبرمج مبتدا - 06-08-17

(05-08-17, 09:29 PM)محمود بكرى كتب : السلام عليكم ورحمة الله
واضح من الرسالة ان التاريخ لديك تاريخ هجري وهو غير متوافق مع البحث كقيمة منطقية للتاريخ ولتفادي هذه المشكلة فقد جعلت التاريخ بالتاريخ الميلادي
فحمل المرفق وجرب وابلغنا بالنتيجة
والله الموفق

ماقصرت يالغالي ولكن للاسف البرنامج اللي انا عامله كامل لابد ان يكون التاريخ فيه بالهجري اما الميلادي شغال تمام

(05-08-17, 07:43 PM)أبو نوره كتب : مرحبا اخي

جرب هذا التعديل
PHP كود :
Imports System.Data.OleDb

Public Class Form1
    Dim cn 
As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mydata.accdb")
 
   Dim da As New OleDbDataAdapter
    Dim dt 
As New DataTable

    Private Sub DataGridView1_CellContentClick
(ByVal sender As System.ObjectByVal e As System.Windows.Forms.DataGridViewCellEventArgsHandles DataGridView1.CellContentClick

    End Sub

    Private Sub Form1_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        da 
= New OleDbDataAdapter("select * from table1"cn)
 
       da.Fill(dt)
 
       Me.DataGridView1.DataSource dt

    End Sub

    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        dt
.Clear()
 
       da = New OleDbDataAdapter("select * from table1 where data_1 between @fromdate and @todate"cn)
 
       da.SelectCommand.Parameters.AddWithValue("@fromdate"DateTimePicker1.Value.Date)
 
       da.SelectCommand.Parameters.AddWithValue("@todate"DateTimePicker2.Value.Date)
 
       da.Fill(dt)
 
       Me.DataGridView1.DataSource dt
    End Sub
End 
Class 

يعطيك العافيه يالغالي 

جاري التجربه وراجع واعذروني على الرد المتاخر النت يفصل ساعه ويرجع

(05-08-17, 07:56 PM)سعود كتب : اجعل تنسيق التاريخ فالقاعدة على تاريخ قصير
واكتب بالكود
dtp.value.toshortdatestring

كود :
       da = New OleDbDataAdapter("select * from table1 where [data_1] between #" & DateTimePicker1.Value.ToShortDateString & "# and #" & DateTimePicker2.Value.ToShortDateString & "#", cn)

يالغالي هذا الكود اين اضعه بالضبط

dtp.value.toshortdatestring


RE: مشكلة البحث بين تاريخيين - محمود بكرى - 06-08-17

اخي الغالى قاعدة البيانات لن تتعامل مع التاريخ الهجري سجل التاريخ بها ميلادي  وتعامل معاه هجري عادي من خلال الفورم او اي كانت طريقتك المهم يسجل بالميلادي وان اتبع ذلك الاسلوب فى برامجي كما فى الصورة