تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] String was not recognized as a valid DateTime.
#11
السلام عليكم ورحمة الله وبركاته

إذا كان نوع lasttime هو Date
أنت حددت tblasttime بأنه String وهذا خطأ لازم تحدده بـ Date عشان راح تحوله فيما بعد لـ String
كود :
Dim tblasttime As Date

tblasttime = CDate(tbr.Item("lasttime"))
Dim tmember As String = tblasttime.ToString(myDateFormat, New Globalization.CultureInfo("en-us"))

جرب وأخبرني

السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: سعود
#12
بصراحة دخت وانا احول النوع بين datetime و nvarchar ماهو النوع المناسب اخوي ابو رايد .Huh

اريد كل انواع التاريخ واحد بالنسبة لكل الجداول يعني ايش رايك الانسب date or datetime

طيب اخوي ابو رايد لو حطيت النوع datetime هل اريح مخي واستعلم بالكود التالي:
كود :
dim cm as new sqlcommand("",con)
cm.commandtext="select max(mtime) from rdod where mformid=" & val(tid.text) & ""

لان لو يمشي الحال بالنوع datetime بحيث يجلب احدث تاريخ ووقت بشكل صحيح معناته لقيت ضالتي
مارايك؟
لان التجربة لاتكفي فقد اغتر بالنتيجة ظانا ان هذا المراد ثم بعد مدة مثل دخول شهر اخر اتفاجا ان السعادة كانت مجرد حلم.
الرد }}}
تم الشكر بواسطة:
#13
السلام عليكم ورحمة الله وبركاته


سألتني عن GETDATE وذكرت لك أنها قد تكون الأفضل وبهذا استخدم DateTime معها وهي تجلب الوقت والتاريخ معاً.

ولكن في الاستعلام يجب التحويل بـ CDate ولا ترفقه نصاُ كما هو.

الأفضل استخدام الـ Parameter فهو أفضل من الادراج مباشرة في sql كالتالي
كود :
Dim sql As String = "SELECT MAX(mtime) FROM [rdod] WHERE [mformid] = @mformid "
Dim cm As New SqlCommand(sql, con)
cm.Parameters.AddWithValue("@mformid", Val(tid.text))

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

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


يبدو أنه التبس عليك DateTime وDate التي في الفحوال بيسيك وأخرى في SQLServer

في Visual Basic لا يوجد اختلاف بينهما فميكروسوفت اكتفت ب Date وهي تحتوي التارخ والوقت معاً في حين ما زالت DateTime القديمة موجودة.

لكن في SQLServer فهما مختلفات ف DateTime تحتوي التاريخ والوقت في حين Date للتاريخ فقط وأيضاُ يوجد Time للوقت فقط وهي بنظام 24.

لهذا أحببت التنويه....


السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: سعود
#14
إقتباس :ولكن السؤال كيف سيكون التنسيق في tid.text ؟
الـ tid.text هذا من نوع int يحمل رقم المنتدى لكي احصر نتيجة الاستعلام فقط بالمنتدى الحالي
يعني الان الصفحة Default.aspx تحتوي div تحتضن عنصر تحكم ascx وهو بناء على القاريء
كود :
do while dr.read

                Dim fc As mcontrols_frmnames = CType(LoadControl("~\mcontrols\frmnames.ascx"), mcontrols_frmnames)
                fc.tid1.Text = rdr_read_titles.Item("tid")


loop

المتغير او الاداة tid1 هي تحمل خصائص tid بعد تعميمها
هذا الكلام في الصفحة الرئيسية بحدث تحميلها
لكن العمل الان في حدث تحميل نفس عنصر تحكم frmnames.ascx
و tid.text هي التي تحمل رقم المنتدى
الرد }}}
تم الشكر بواسطة:
#15
السلام عليكم ورحمة الله وبركاته


عفوا..... كان هناك خطأ في الرد السابق، فقد اعتقدت من كثرت ما نتكلم عن التاريخ ظننت أن tid.text هو تاريخ، تم التصحيح.


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

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



طيب لماذا لا تستخدم DataAdapter بدلا من DataReader ؟


السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: سعود
#16
=================================


طيب اخوي اخترنا نوع datetime بقيمته الافتراضية getdate طيب عند التحديث كيف نكتب الكود بحيث لايختلف عن تنسيق القاعدة؟

+++++++++++++++++++++
ايضا نتيجة الاستعلام هذا
كود :
cm.Parameters.AddWithValue("@mformid", Val(tid.text))
كيف نخزنه؟ هل بنوع string or datetime
****************************
******************************
يعني الان نريد الاستعلام

كود :
Dim sql As String = "SELECT MAX(mtime) FROM [rdod] WHERE [mformid] = @mformid "
Dim cm As New SqlCommand(sql, con)
cm.Parameters.AddWithValue("@mformid", Val(tid.text))
هل نكتب النتيجة هكذا
كود :
dim rdlasttime as datetime = cdate( cm.ExecuteScalar)
على ان الناتج هو تاريخ
هذا بالنسبة لاحدث رد
وهل اخر زيارة للعضو نفس الكود اذ انه نفس النوع
لكن المشكلة تحديث اخر الزيارة كيف نكتب كود للتحديث
الرد }}}
تم الشكر بواسطة:
#17
السلام عليكم ورحمة الله وبركاته


هناك أمر مهم قد صادفني سابقا عند تجربتي في عمل منتدى بـ ASP القياسية، وهو أنه عند اعتماد GETDATE يأخذ التاريخ والوقت للسرفر، ولكن المشكلة أن فارق التوقيت للسرفر ليس صفر أي ليس بتوقيت جرينتش GMT مما تسبب في مشاكل عند محاولة نقل قاعدة البيانات على سرفر آخر بفارق توقيت مختلف أيضاً.

هناك أمر يحل المشكلة وهو بديل عن GETDATE ألا وهو GETUTCDATE ومنه تستطيع حساب الفارق الزمني لكل عضو مسجل بالمنتدى عن طريق الدالة DATEADD مع المعامل hour كالتالي لفارق التوقيت للسعودية مثلا
كود :
DATEADD( hour, 3, GETUTCDATE() )

وبالنسبة لحفظ التوقيت في قاعدة البيانات فلا تقلق قم بحفظها بتوقيت GMT وعند العرض فقط يتم تطبيق فارق التوقيت.


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

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


معليش، انا مشتت بعض الشيء، ممكن تكتب كود التحديث عشان استوعب طريقتك في الكود مع وصف كل حقل،

راح أعطيك مثل يمكن يوضح
كود :
UPDATE [rdod] SET [mtime] = GETUTCDATE() WHERE [mformid] = @mformid




السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: سعود
#18
كود :
GETUTCDATE()

هل هذي ضمن جملة الاستعلام ام ضمن كود فيجوال بيسك؟؟
يعني هل هي داخل علامة التنصيص؟
الرد }}}
تم الشكر بواسطة:
#19
(02-10-13, 12:22 PM)سعود كتب :
كود :
GETUTCDATE()

هل هذي ضمن جملة الاستعلام ام ضمن كود فيجوال بيسك؟؟
يعني هل هي داخل علامة التنصيص؟

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


هذه دالة من دوال SQL يعني داخل جملة الاستعلام بدون علامات تنصيص

فيه مشكلة عندي في الدخول للمنتدى أحياناً لا أستطيع الدخول أو الرجوع للصفحة السابقة غير أقفل المتصفح وانتظر وقت حتى استطيع الرجوع للمنتدى مع انه استطيع الدخول لجوجل بشكل سريع؟؟

السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: سعود
#20
ممتاز .. الان باذن الله سابدا التعديلات اللازمة لكن فيه نقطة بسيطة وهي كيف اعدل على الكود التالي بحيث استخدم البارامترات

كود :
UPDATE [rdod] SET [mtime] = GETUTCDATE() WHERE [mformid] = @mformid

ماذا اكتب بدل mydate هنا
كود :
cmvisitors.Parameters.AddWithValue("@mtime", mydate)
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] Unclosed quotation mark after the character string ''. سعود 0 1,916 06-10-13, 10:22 PM
آخر رد: سعود

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


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