تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة غريبة في عرض التاريخ
#1
احبتي الكرام اسعد الله اوقاتكم بكل خير
لدي مشكلة غريبة وهي ان التاريخ يعرض للمرة الاولى فقط بشكل صحيح
وعند الفلترة في الداتاقريد من خلال كومبو بوكس يحصل خلل في عرض التاريخ
مع ان الكود نفسه ولم يتغير فيه شي ،، جهازي عربي على اعدادات السعودية
التقويم ام القرى

المرة الأولى يكون بهذا الشكل


 
وكما تلاحظون التاريخ صحيح وموافق لليوم المقابل له

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



ايضا وضعت زر تحديث ولكنه لايعطي نتائح صحيحة بعد الفلترة اما قبل الفلترة فهو يعطي نتائح صحيحة
ارجو منكم اخوتي مساعدتي في هذه المشكلة حيث اني مبتدى نوعا 
مرفق لكم مشروعي شاكر سلفا كل من تعاون معي..


الملفات المرفقة
.zip   WindowsApplication29.zip (الحجم : 107.81 ك ب / التحميلات : 27)
الرد }}}
تم الشكر بواسطة:
#2
هذة المشكلة واجهت الكثييييييير من المبرمجين

لأن الـ provider الخاص بقواعد أكسس OleDb لا يدعم إلا التقويم الميلادي , والمصيبة أنه حتى له اسلوب خاص في التعامل مع التاريخ بغض النظر عن التاريخ المعد في النظام، والطامة الأكبر أن مايكروسوفت لم تشرح طريقة عمل قواعد اكسس بشكل كامل في ما يخص الـ OleDb وكيف يتعامل مع التواريخ ( أحجية لا يعرفها أحد )


عند تنفيذ الإستعلام
SELECT * from gyabt
النتيجة طبيعية


لكن الغريب والذي يجعلك فعلاً ترفع حاجبيك إلى الأعلى من الدهشة الغموض الذي يحدث عند تنفيذ الإستعلام بهذا الشكل
SELECT * from gyabt where XXX=YYY
بغض النظر عن ماذا يأتي بعد الكلمة where المهم أنك إستخدمة الكلمة where
لا تعلم مالذي يحدث في التطبيق
تتغير إعدادت التقويم بشكل لا يمت بصلة لأي شي
لماذا لا تعلم
ما الذي تغير لا تعلم
المهم ان التطبيق بعد تنفيذ جملة إستعلام تحتوي على الكلمة where يحدث شيء غريب

جميع البيانات تأتي بشكل طبيعي ، إلا إذا حاولت التحويل بين التواريخ من ميلادي إلى هجري والعكس، الكلمة where لك بالمرصاد.


قبل إستخدام الكلمة where تحويل التاريخ صحيح
بعد الكلمة where النتيجة غير مضمونة إما ناقص أو زائد أو يساوي بعض المرات


ابتعد عن اكسس إذا كنت فعلاً تحتاج إلى التعامل مع التواريخ الهجرية. ( معاناه أنت في غنى عنها )
الرد }}}
تم الشكر بواسطة: Taha Okla , أبو خالد الشكري , 
#3
الف شكر على ردودكم اخوتي الخبراء ،، افهم من هذا انه لو تم تعديل قاعدة البيانات الى اصدار اقدم فلا مشكلة؟
ايضا لو تم الاستغناء عن الاكسس واستخدام قواعد sql او حتى صفحة اكسل هل ستختفي المشكلة ؟
شاكر للجميع وكتب الله اجركم
الرد }}}
تم الشكر بواسطة:
#4
المشكلة تحدث لما تدخل تعديلات على جملة الاستعلام 
فلما تضع شرط التحديد تختل التعديلات وتعطيك التاريخ بحسب معادلة التحويل بين التاريخين ضمن السستم 
(ربما معادلة قديمة في آكسس لم تنتبه لها مايكروسوفت حتى الان)

لاحظ جملة الاستعلام  ("Select  * From gyabt")

لاحظ استخدام الـ (*)  وهنا الحل والمشكلة : 
هنا يتم التعويض بحسب ما طلبت من البرنامج أن يعطيك التاريخ بإعدادات المملكة السعودية بحسب محاكي الفيجول استديو
بينما لو عينت أسماء الحقول (الأعمدة) بعد (Select) أو (Where) ستحدث المشكلة لأنها ستترك أمر التعديل لمعادلة الأكسس القديمة

لما تكون بدون تحديد بيشتغل طبيعي(لما تستخدم *)، 
ولما تحدد عرض حقول محددة  أو بشرط حقل ما تحدث المشكلة.
--

لكن .. 


لكن يمكن تجاوز هذه المشكلة باستخدام لغة الاستعلام Linq  وكذلك ضمن الـ  Limpda

يعني بتخلي جملة الاستعلام ثابتة والتي هي ("Select  * From gyabt")

 
ولكن البحث سيتم في الجدول الناتج والذي هو (dt)
بالتالي يصبح الكود :
كود :
Dim ci As CultureInfo
       ci = New CultureInfo("ar-sa")
       CultureInfo.DefaultThreadCurrentCulture = ci

       Dim conn As New OleDbConnection("provider=microsoft.ace.oledb.12.0; data source=FprintDB.accdb")

       Dim da As New OleDbDataAdapter("Select  * From gyabt", conn)

       Dim dt As New DataTable

       da.Fill(dt)

       Dim TA = From dd In dt.AsEnumerable()
                Where dd(0) = ComboBox1.SelectedItem

       DataGridView1.DataSource = TA.CopyToDataTable()
       DataGridView1.Columns(1).DefaultCellStyle.Format = ("yyyy/MM/dd")
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
#5
(07-04-23, 05:03 PM)Taha Okla كتب : لكن يمكن تجاوز هذه المشكلة باستخدام لغة الاستعلام Linq  وكذلك ضمن الـ  Limpda

يعني بتخلي جملة الاستعلام ثابتة والتي هي ("Select  * From gyabt")

 
ولكن البحث سيتم في الجدول الناتج والذي هو (dt)
بالتالي يصبح الكود :
كود :
Dim ci As CultureInfo
       ci = New CultureInfo("ar-sa")
       CultureInfo.DefaultThreadCurrentCulture = ci

       Dim conn As New OleDbConnection("provider=microsoft.ace.oledb.12.0; data source=FprintDB.accdb")

       Dim da As New OleDbDataAdapter("Select  * From gyabt", conn)

       Dim dt As New DataTable

       da.Fill(dt)

       Dim TA = From dd In dt.AsEnumerable()
                Where dd(0) = ComboBox1.SelectedItem

       DataGridView1.DataSource = TA.CopyToDataTable()
       DataGridView1.Columns(1).DefaultCellStyle.Format = ("yyyy/MM/dd")


شاكر لك اخي الكريم على الافادة والشكر موصول للاخوة اللي ردوا علي موضوعي اعلاه..
المشكلة ماعندي خلفية عن Linq حاولت اجد مواضيع او دورات تتكلم عنها وللاسف كلها على لغة C# وانا مااعرف الا للفيجول
حاليا رجعت لقاعدة بيانات mdb مع اني ما ارتاح لها بمكن كسر حمايتها بسهولة وانا احتاج اقفل قاعدة البيانات بكلمة مرور بعد الانتهاء من المشروع
الرد }}}
تم الشكر بواسطة:
#6
أوامر الـ Linq هي نفسها التي تعمل في السي شارب تعمل في الفيجول بيزك دوت نت بدون تغيير 
نفس الكود تقريبا ويوجد بعض الفروقات وهي : 
1 - نهاية كل كود فاصلة منقوطة في السي شارب.
2 - للتعريف عن متغير في السي شارب من أجل تخزين قيمة جملة الـ Linq نستخدم var
    في الفيجول بيزك نستخدم Dim
3 - أوامر الـ Limbda في السي شارب تعين بـ (r1 => r1)  بينما في الفيجول بيزك بـ (Function(r1) r1).
وفروقات آخر بسيطة ..

إن كنت تعلمت من قبل البرمجة كائنية التوجه (oop) فأدخل وتعلم اللـ Linq من أي دورة سي شارب وطبقها ضمن الفيجول بيزك ببساطة وستعرف كل شيء عنها خلال يومين وتتقنها عن آخرها.


وأي شيء قد يشكل عليك بعدها : أدخل على هذا الموقع وأطرح سؤالك وستجد الكثير من يفيدك بما تريد وأكثر بإذن الله.
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة:
#7
(06-04-23, 06:02 AM)assuhimi كتب : احبتي الكرام اسعد الله اوقاتكم بكل خير
لدي مشكلة غريبة وهي ان التاريخ يعرض للمرة الاولى فقط بشكل صحيح
وعند الفلترة في الداتاقريد من خلال كومبو بوكس يحصل خلل في عرض التاريخ
مع ان الكود نفسه ولم يتغير فيه شي ،، جهازي عربي على اعدادات السعودية
التقويم ام القرى

المرة الأولى يكون بهذا الشكل


 
وكما تلاحظون التاريخ صحيح وموافق لليوم المقابل له

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



ايضا وضعت زر تحديث ولكنه لايعطي نتائح صحيحة بعد الفلترة اما قبل الفلترة فهو يعطي نتائح صحيحة
ارجو منكم اخوتي مساعدتي في هذه المشكلة حيث اني مبتدى نوعا 
مرفق لكم مشروعي شاكر سلفا كل من تعاون معي..

(06-04-23, 01:51 PM)assuhimi كتب : الف شكر على ردودكم اخوتي الخبراء ،، افهم من هذا انه لو تم تعديل قاعدة البيانات الى اصدار اقدم فلا مشكلة؟
ايضا لو تم الاستغناء عن الاكسس واستخدام قواعد sql او حتى صفحة اكسل هل ستختفي المشكلة ؟
شاكر للجميع وكتب الله اجركم

استخدام SQLServer ليس فيه هذه المشكلة وهو أفضل بكثير بالإضافة لمسألة الأمان العالية
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , ابو روضة
#8
جرب تعديل نوع البيانات في قاعدة البيانات من تاريخ إلى نص أو (نص مختصر)

و في الفورم ادخل التاريخ عن طريق اداة DateTimePicker

و بإذن الله راح تضبط معك
اللهم ارحم من أسس هذا المنتدى (اباليث) و أجعل كل علم نافع تعلمناه في هذا المنتدى أجر له و صدقة تنفعه في قبره
الرد }}}
تم الشكر بواسطة:  , Amir_Alzubidy


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Sad مشكلة تقريب الأرقام Sql Server waataanys 2 387 09-05-24, 03:52 PM
آخر رد: تركي الحلواني
  حل مشكلة في تصدير ملف كريستال ريبورت إلى PDF صالح عبدالله 7 149 02-05-24, 08:36 PM
آخر رد: صالح عبدالله
  مشكلة في ربط الفيجوال بيسك 2013 مع الاكسل صالح عبدالله 7 182 19-04-24, 09:13 AM
آخر رد: صالح عبدالله
  مشكلة فى Radiobutton عند وضع صورة فيه أبو جودة 3 123 15-04-24, 04:31 AM
آخر رد: Taha Okla
  [سؤال] لدي مشكلة عند قراءة ملف نصي من خلال أداة RichBox , حيث تظهر لي علامات استفهام Mostchar 2 168 07-04-24, 02:51 PM
آخر رد: تركي الحلواني
  مشكلة في التايمر assuhimi 3 145 23-03-24, 04:51 PM
آخر رد: Taha Okla
  [سؤال] مشكلة اتصال مفتوح dell 2 192 12-03-24, 09:46 PM
آخر رد: dell
  مشكلة عند نقل البرنامج من فيجوال 2013 الى فيجوال 2017 strongriseman 5 173 12-03-24, 10:37 AM
آخر رد: strongriseman
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 182 06-03-24, 07:49 PM
آخر رد: احمد خطاب
Photo [VB.NET] مشكلة في شكل الفورم abuyazan 5 336 27-02-24, 09:38 PM
آخر رد: aljzazy

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم