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

مشكلة في التاريخ والوقت

بدأه عبد الملك بكار في 27 ديسمبر 2012 · 4 رد · 538 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قمت بالانتهاء من الموقع بشكل كامل على السيرفر المحلي وكان يعمل تمام لكن لما رفعته على النت ظهرت المشكلة التي بالصورة

وهذا الكود موجود في ملف Global

HttpBrowserCapabilities browse = Request.Browser;
    	System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|DB.mdb");
    	System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("INSERT INTO visits (Dat, Browser, System, IP) VALUES    	('" + DateTime.Now + "','" + browse.Type + "','" + browse.Platform + "','" + Request.UserHostAddress + "')", con);
    	con.Open();
    	cmd.ExecuteNonQuery();
    	con.Close();

وهذا الكود موجود في حدث PageLoad

 DateTime dt1 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
    	DateTime dt2 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

وأعتقد ان المشكلة تكمن في أحد هذين الكودين ولكن لا أعرف ماهي بالضبط

والذي فهمت من المشكلة:

The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.

أنه السلسة التي استقبلها لا يستطيع تحويلها الى وقت وتاريخ

post-269938-024162500 1356632893_thumb.j

المرفقات
التقاط.JPG
#2

من الرسالة يظهر أن الخطأ متولد ضمن الحدث PageLoad

والمشكلة أظنها في هذه

DateTime dt1 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

DateTime dt2 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

وهي أن إعدادات التقويم في نظام السيرفر مختلف عن الفورمات الذي تفرضه عليه

ولم تظهر على جهازك المشكلة لإن الإعدادت عندك متوافقة

إن كان يوجد إعداد للكلتشر Culture في ملف الكونفيج فجرب أن تضع

<globalization culture="en-US" uiCulture="auto"/>

أو ضع لنا ملف الكونفيج ( مع حذف الأسطر الخاصة كالكونيكشن سترينغ والباسوردات)

لمحاولة التعرف أكثر على المشكلة

أو جرب استبدل

CultureInfo.InvariantCulture

بـ

CultureInfo.InstalledUICulture

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 28 ديسمبر 2012 في 01:32

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

جربت وضع <globalization culture="en-US" uiCulture="auto"/> في الويب كونفيج ونفس المشكلة وجربت

اقتباس

أو جرب استبدل

CultureInfo.InvariantCulture

بـ

CultureInfo.InstalledUICulture

فلم تنجح أيضا

وقمت برفع ملف WebConfig على هذا الرابط

WebConfig

#4
عبد الملك بكار كتب:

HttpBrowserCapabilities browse = Request.Browser;
    	System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|DB.mdb");
    	System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("INSERT INTO visits (Dat, Browser, System, IP) VALUES    	('" + DateTime.Now + "','" + browse.Type + "','" + browse.Platform + "','" + Request.UserHostAddress + "')", con);
    	con.Open();
    	cmd.ExecuteNonQuery();
    	con.Close();

وهذا الكود موجود في حدث PageLoad

 DateTime dt1 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
    	DateTime dt2 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

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

حاول تبديل الصيغة من يوم/شهر/سنة إلى شهر/يوم/سنة أى تكون "MM/dd/yyyy" فى كل الأماكن

وهناك استفسار -- لماذا تستخدم ParseExact لماذا لا تستخدم


DateTime dt1 = DateTime.Now;

وعند الاستخدام تحوله إلى نص بالشكل التالى



string TheDate = dt1.ToString("MM/dd/yyyy");

تم تعديل هذه المشاركة بواسطة ema2000_t في 28 ديسمبر 2012 في 19:36

5

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#5

السلام عليكم ..

  1. ما الهدف من إنشاء كائن DateTime من كائن آخر dateTime و سيكون لهما نفس القيمة أما الـــ Format فلا علاقة له بالقيمة الداخلية ..
  2. في هذا السطر
     DateTime dt1 = DateTime.ParseExact(DateTime.Now.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

    لا معنى له اساسا لانه في حال نجاحه سيكون فيمة الـــ dt1 هي قيمة DateTime.Now

  3. في عبارة الــ Insert قم باستخدام البارمترات ...

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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