منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة البحث بين تاريخيين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته

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

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


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

كود:

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
للاسف مازالت المشكلة نفسها

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

http://www.up-00.com/?Kllx
السلام عليكم و رحمة الله و بركاته
لتحصل على تنسيق التاريخ استخدم 
PHP كود :
DateTimePiker1.Value.Date 

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

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




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


نتمنى من أساتذتنا شرح تجاوز هذه المشكله
سويت نفس اعداداتك باقي المشكله موجوده

(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 



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

مرحبا اخي

جرب هذا التعديل
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 
اجعل تنسيق التاريخ فالقاعدة على تاريخ قصير
واكتب بالكود
dtp.value.toshortdatestring

كود :
       da = New OleDbDataAdapter("select * from table1 where [data_1] between #" & DateTimePicker1.Value.ToShortDateString & "# and #" & DateTimePicker2.Value.ToShortDateString & "#", cn)
السلام عليكم ورحمة الله
واضح من الرسالة ان التاريخ لديك تاريخ هجري وهو غير متوافق مع البحث كقيمة منطقية للتاريخ ولتفادي هذه المشكلة فقد جعلت التاريخ بالتاريخ الميلادي
فحمل المرفق وجرب وابلغنا بالنتيجة
والله الموفق
[attachment=15063]
(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
اخي الغالى قاعدة البيانات لن تتعامل مع التاريخ الهجري سجل التاريخ بها ميلادي  وتعامل معاه هجري عادي من خلال الفورم او اي كانت طريقتك المهم يسجل بالميلادي وان اتبع ذلك الاسلوب فى برامجي كما فى الصورة
الصفحات : 1 2