المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: عندما احاول اضافة التاريخ لقاعدة البيانات يظهر لي هذا الإستثناء
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات البرمجة على Microsoft .NET Platform > منتدى الـ ADO.NET
عبد المعز
كود
System.Data.SqlClient.SqlException was unhandled by user code

  Class=15
  ErrorCode=-2146232060
  LineNumber=1
  Message="Incorrect syntax near '12'."
  Number=102
  Procedure=""
  Server="\\.\pipe\4256CD37-CD38-4F\tsql\query"
  Source=".Net SqlClient Data Provider"
  State=1
  StackTrace:
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at admin_regester.Button1_Click(Object sender, EventArgs e) in C:\Documents and Settings\Smart Solutions\My Documents\Visual Studio 2005\WebSites\websms\admin\regester.aspx.vb:line 69
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


كيف يمكن ان اتجاوز هذا الإستثناء
محمد سامر أبو سلو
يرجى وضع الكود الذي سبب الخطأ أو قم بإرفاق مثال تظهر فيه المشكلة حتى نستطيع مساعدتك
عبد المعز
كود
  account = "'" + TextBox11.Text + "'"
        username = "'" + TextBox1.Text + "'"
        password = "'" + TextBox2.Text + "'"

        firstname = "'" + TextBox4.Text + "'"
        lastname = "'" + TextBox5.Text + "'"
        age = TextBox6.Text
        gender = "'" + DropDownList2.SelectedValue + "'"
        country = "'" + DropDownList1.SelectedValue + "'"
        city = "'" + TextBox7.Text + "'"
        mobile = TextBox8.Text
        company = "'" + TextBox9.Text + "'"
        email = "'" + TextBox10.Text + "'"
        dat = Date.Now



        Dim str2 As String = "insert into [profile_td](account_id,user_name,first_name,last_name,country,city" + _
                                       ",date,mobile_no,company,age,gender,email)values  " + _
              "(" + account + "," + username + "," + firstname + "," + lastname + "," + country + "," + _
              city + "," + dat + "," + mobile + "," + company + "," + age + "," + gender + "," + email + ")"

        Dim cn2 As New SqlConnection
        cn2.ConnectionString = ConfigurationManager.ConnectionStrings("sms.mdf").ConnectionString
        cn2.Open()
        Dim cmd2 As New SqlCommand(str2, cn2)
        MsgBox(str2)
        cmd2.ExecuteNonQuery()
        cmd2.Dispose()
        cn2.Close()


المشكلة عند محاولة خزن التاريخ لوحده يعمل لكن عندما احاول خزن التاريخ مع الساعة لا يعمل , حتى خزن التاريخ لوحده لا يعمل , هذا
ما اجده في حقل التاريخ 01/01/1900 12:00:00
alamor
وانا اعني من مشكلة في اضافة التاريخ لقاعدة البينات
افيدوني رحمكم الله
محمد سامر أبو سلو
ربما تكون المشكلة أن تنسيق التاريخ في قاعدة البيانات حسب التنسيق الأمريكي شهر/يوم/سنة

جرب تغيير
كود
dat = Date.Now

إلى
كود
dat = Date.Now.ToString("MM/dd/yyyy")


وخبرنا بالنتيجة
عبد المعز
اخي جربت هذا , المشكلة انه لا يحفظ التاريخ , في القاعدة (نوع الحقل هو smalldattime)
وعندما احاول ادخال التاريخ مع الوقت يحدث الإستثناء

اتا اريد انا ادخل التاريخ مع الساعة والدقيقة , هل ينفع smalldatetime , وهل جملة الإدخال صحيحة .
محمد سامر أبو سلو
هذا مثال على عبارة Insert لإضافة قيمة لحقل smalldatetime أعتقد ستفيدك
كود
INSERT INTO Table1
                      (da)
VALUES     (CONVERT(DATETIME, '2006-01-14 15:35:00', 102))
عبد المعز
اخي لو تشرح لي الجملة , ال datetime هو متغير ؟
وماذا يعني الرقم 102
محمد سامر أبو سلو
يستخدم التابع convert في التغيير الصريح لتعبير ما من نوع معطيات إلى نوع معطيات آخر ويمكن استخدامه في أي مكان يمكن استخدام التعبير فيه وصيغته العامة
كود
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )


طابق عبارة Insert السابقة على الصيغة العامة ستجد أن DATETIME هو نوع البيانات المحول إليه و ليس متغير و Style تأخذ عدة قيم مثل
كود
102 ANSI yy.mm.dd
103 British/French dd/mm/yy
104 German dd.mm.yy
105 Italian dd-mm-yy


يمكنك الاطلاع على كافة تفاصيل التابع convert في مكتبة MSDN في وثائق SQL Server
عبد المعز
اخي انحلت معي المشكلة , حولت نوع الحقل من smalldatatime إلى datetime
واستخدم هذه الصيغة

Date.Now.ToString("MM/dd/yyyy hh:mm")

اخي لدي سؤال خارج عن الموضوع هل يوجد جملة اضافة في اكثر من جدول في نفس الوقت
insert into
محمد سامر أبو سلو
لا لاأعتقد أنه يمكن استخدام insert to لإضافة بيانات لأكثر من جدول بنفس الوقت على حسب علمي
H.Saber
اخى العزيز بإمكانك قراءة هذا الموضوع واعتقد انه الحل لمشكلتك ان شاء الله

http://www.arabteam2000-forum.com/index.php?showtopic=115041
الطائر التركي
ممكن اخي عبد المعز توضيح طريقة حل مشكلة التاريخ بلتفصيل
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.