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

حد يعرف الخطا دا سببه ايه

بدأه shosho842000 في 14 ديسمبر 2009 · 5 رد · 988 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

يوجد لدى مشكله فى الحفظ حيث يظهر رساله الاتية :

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

حيث ان كود الاضافه هو الاتى

 For x As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows.Item(x).IsNewRow Then
                Dim emp_id As Integer = TextBox1.Text
                Dim name As String = DataGridView1.Rows.Item(x).Cells(0).Value
                Dim date1 As DateTime = DataGridView1.Rows.Item(x).Cells(3).Value
                Dim no As Integer = DataGridView1.Rows.Item(x).Cells(5).Value
                Dim date2 As DateTime = DataGridView1.Rows.Item(x).Cells(6).Value
                Dim kind As String = DataGridView1.Rows.Item(x).Cells(7).Value
                Dim notes As String = DataGridView1.Rows.Item(x).Cells(9).Value

                Dim cmd2 As New SqlClient.SqlCommand("SELECT COUNT(*) FROM stop_emp WHERE id=@id", cn)
                Dim id As Integer = DataGridView1.Rows.Item(x).Cells(0).Value
                cmd2.Parameters.AddWithValue("@id", id)
                Dim count As Integer = cmd2.ExecuteScalar()
                If count > 0 Then
                    Continue For
                End If

                cmd.Parameters.Clear()
                cmd.CommandType = CommandType.StoredProcedure
                cmd.CommandText = "insertstop_emp"
                cmd.Parameters.Add("@emp_id", SqlDbType.Int).Value = TextBox1.Text
                cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = name
                cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = date1
                cmd.Parameters.Add("@no", SqlDbType.Int).Value = no
                cmd.Parameters.Add("@date1", SqlDbType.DateTime).Value = date2
                cmd.Parameters.Add("@kind", SqlDbType.VarChar).Value = kind
                cmd.Parameters.Add("@notes", SqlDbType.VarChar).Value = notes

                cmd.ExecuteNonQuery()
            End If
        Next
        MessageBox.Show("تم الحفظ ")

كما اننى اكتب التاريخ بصورة صحيحه وهى 1/1/2000 مثلا

وشكرا

#2

يبدو أن هناك خطأ في عملية التحويل من نص إلى تاريخ.

يفضل استخدام الدالات المخصصة لذلك مثل cdate و عدم ترك التحويل للكمبيوتر.

دائماً ضع:

option explicit on

option strict on

في أول كل ملف.

#3

لقد قمت بفعل ذلك وماذالت المشكله قائمة لقد قمت بعمل messagebox واستعراض القيم من خلالها والقيم صحيحه

ولكن المشكله نفسها

يظهر نفس الاعتراض لماذا ؟؟؟؟؟

حيث ان الجميع القيم datetime

وشكرااااااااااااا

#4

ارفق مثال ان امكن لفحص الخطأ

البرنامج + داتا بيز

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

أعتقد انك يجب ات تعدل هذا السطر :

Dim date1 As DateTime = DataGridView1.Rows.Item(x).Cells(3).Value

إلى:

Dim date1 As DateTime = DateTime.Parse(DataGridView1.Rows.Item(x).Cells(3).Value)

و أيضا":

Dim date2 As DateTime = DataGridView1.Rows.Item(x).Cells(6).Value

إلى:

Dim date2 As DateTime = DateTime.Parse(DataGridView1.Rows.Item(x).Cells(6).Value)

#6

لقد قمت با ضافه البرنامج مع قاعده البيانات كما طلب

مع الاخذ فى الاعتبار

1 - يوجد اضافه textbox بالكود ياخذ رقم 0 ويوجد واحد اخر ياخذ الكود 1

2- يوجد اضافه buttom box ايضا يحملون الارقام الاتيه 4 ورقم 9

وشكراااااااااااا

1234.rar

stop_emp.txt

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…