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

مشكله فى مقارنه التاريخ

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

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

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

  For x As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows(x).Cells(1).Value < DataGridView1.Rows(x).Cells(2).Value Then
                If cn.State = ConnectionState.Open Then cn.Close()
                cn.Open()
                Dim id As Integer
                Dim name, sal_name, notes As String
                Dim start, end1 As DateTime
                id = Val(TextBox1.Text)
                name = TextBox2.Text
                sal_name = DataGridView1.Rows.Item(x).Cells(0).Value
                start = DataGridView1.Rows.Item(x).Cells(1).Value
                end1 = DataGridView1.Rows.Item(x).Cells(2).Value
                notes = DataGridView1.Rows.Item(x).Cells(3).Value

                cmd.CommandType = CommandType.StoredProcedure
                cmd.CommandText = "insertsal_emp"
                cmd.Parameters.Add("@id", SqlDbType.Int).Value = TextBox1.Text
                cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = TextBox2.Text
                cmd.Parameters.Add("@sal_name", SqlDbType.VarChar).Value = DataGridView1.CurrentRow.Cells(0).Value
                cmd.Parameters.Add("@start", SqlDbType.DateTime).Value = DataGridView1.CurrentRow.Cells(1).Value
                cmd.Parameters.Add("@end1", SqlDbType.DateTime).Value = DataGridView1.CurrentRow.Cells(2).Value
                cmd.Parameters.Add("@notes", SqlDbType.VarChar).Value = DataGridView1.CurrentRow.Cells(3).Value

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

            Else
                MessageBox.Show("تاريخ النهاية اضغر من تاريخ البداية ")
            End If
        Next

يتم اظهار رساله تم الحفظ ثم تاريخ النهاية اضغر من تاريخ البدايه ثم هذا الخطا

Procedure or function insertsal_emp has too many arguments specified.

وشكرا

#2

رساله الحفظ بتظهر لانك مش زاضع الكود بين try and catch

ثانيا مشكله التاريخ

1 حول قيمة الخلية الي تاريخ بمعني

(cmd.Parameters.Add("@start", SqlDbType.DateTime).Value =convert.todatetime( DataGridView1.CurrentRow.Cells(1).Value

تاكد من ان الخليه 1 هي فعلا الخليه الصحيحه

ويستحسن لا تتعامل برقم الخلية تعامل معها بالاسم افضل حتي اذا قمت بالتعديل علي البرنامج واضافة اعمده ممكن ن تفير من index للخليه انما لو بتتعامل معاها باسمها اي اسم العمود مش هتفرق لو الانديكس اتغير

#3

هو سؤال تانى معلش هو انا كونت عايزااه الرساله تظهر والمستخدم بيكتب لانه ممكن يضيف اكثر من حقل فى نفس اللحظة

اكتبها فى حدث ايه وشكرا

#4

هو عملت التعديل الصغير على البرنامج

يظهر لى هذا الخطا

Operator '<' is not defined for type 'DBNull' and type 'DBNull'.

التعديل كان كالاتى

Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit

If DataGridView1.CurrentRow.Cells("start").Value < DataGridView1.CurrentRow.Cells("end1").Value Then

MessageBox.Show("تاريخ النهاية اضغر من تاريخ البداية ")

End If

End Sub

وقومت بالتعامل مع خلال الاسم الاسم صحيح فى الخليتيكن

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

هو عملت التعديل الصغير على البرنامج

يظهر لى هذا الخطا

Operator '<' is not defined for type 'DBNull' and type 'DBNull'.

التعديل كان كالاتى

Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit

If DataGridView1.CurrentRow.Cells("start").Value < DataGridView1.CurrentRow.Cells("end1").Value Then

MessageBox.Show("تاريخ النهاية اضغر من تاريخ البداية ")

End If

End Sub

وقومت بالتعامل مع خلال الاسم الاسم صحيح فى الخليتيكن

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

#5

Operator '<' is not defined for type 'DBNull' and type 'DBNull'

الرساله دي لان الجريد مربوطه ب datatable والخليه اللي بتحاولي تستعملي القيمو بتاعتها فاضية

المفروض الاول تتحققي من قيمه الخلية انها لا تساوي dbnull

ثانيا المفروض تتحدي كمان قبل ما تتحققي من الخليه الكود هيتنفذ علي انهي خليه

لانك لو محددتيش هيتنفذ الكود مع الكتابه في اي خليه

If e.ColumnIndex = end1.Index Then

if dg.currntrow.cells("end1").value <> dbnull.value then

اكتبي هنا الاكواد بتاعتك

end if

End If

#6

ماشى حضرتك دا علشان اتاكد ان الخليه الثانيه فاضيه

بس انا عايزاه اقارن بين خليتين الاولى start والثانية end

عايزاه اقارن بين الاثنين لو الثانيه اضغر من الاولى يظهر رساله اعتراض

وشكرا

حاجة ثانيه اكتبها الكود فى اى حدث علشان هو بيعترض اول لما ابدا اكتب يعنى لما اكتب فى الخليه التانيه الى المفروض ياخذ القيمه بتاعتها ويبدا يقارن ؟؟؟؟

وشكرا

#7

اكتبي الكود في حدث cell_endedite

وطبعا شئ طبيعي انك لو محددتيش اي خليه سيتم تنفيذ الكود عليها اول ماتكتبي في اي خليه هيتنفذ الكود وده كود تحديد الخليه اللي هيتم التنفيذ عليها

If e.ColumnIndex = end1.Index Then

وهنا تكتبي باقي الاكواد

end if

وده نفس الكلام اللي مكتوب في الاجابه السابقه

ثانيا انا اسف اذا كان كلامي ده هيضايقك بس حضرتك انا اول ما فتحت االموقع لقيت غالبيه الاسله اللي موجوده حضرتك اللي سألاها

قبل ما تسالي سؤال حاولي تضوري علي الحل بنفسك مش كل ما توقف مشكله امامك علطول تبعتي السؤال في المنتدي

طبعا كل الاعضاء انا او غيري من الاخوه الافاضل اللي في المنتدي هنجاوب علي السؤال مش دي المشكله

المشكله ان حضرتك كده مش هتتعلمي حاجه لما نجاوبلك علي كل مشكله تقف امامك لان البرمجه فكر وليست كتابه كود

علي سبيل المثال الشؤال اللي حضرتك سألتيه ده ليه اكتر من حل

اولا انك تكتبي الكود تحت حدث cell endedit

2ممكن اصلا متكتبيش الكود تحت اي حدث في الdatagrid

ممكن تكتبيه تحت حدث button_click يعني لما يتم الضغط علي الbutton يعمل loop علي كل row في الجريد ويعمل الvalidaion

ده غير كمان انك ممكن تكتبيه في cell_valuechangedا

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

نتي الوحيده اللي عارفه البرنامج اللي بتعمليه ايه وانتي الوحيده اللي تستطيعي تحديد افضل حدث حسب البرنامج بتاعك

ارجو ان مايكونش كلامي ضايقك

واي سؤال برضو انا تحت أمرك

#8

شكرا على اى ملحوظة بس انا مش موضوع مش بتعلم الموضوع انى بعمل البرامج لوحدى فا بحاول انى استغل اى منتدى زى المواقع دى المفيده علشان استفاد من خبره الناس او مساعدتهم

يعنى انا شغاله من غير tream work

#9

كما اعتقد ان الاعضاء كمان بيستفادوا من المشاركة ؟؟؟؟؟

انا اعتبرت ان المنتدى هو team work بتاعى مش اكثر لو مشاركاتى بتتايق الاعضاء يبقى هبحث عن منتدى اخر

واسفه على الازعاج

#10

يا استاذه مشركاتك مش بتضايق ولا حاجه اللي هيتضايق من المشاركات مش هيرد اصلا وهيكبر دماغة

انا بس بقولك نصيحه علشان تستفادي

ثانيا في اسئله انتي سألتيها متجاوبه قبل كده فممكن تسنخدمي البحث في المنتدي وعلي فكره انا برضو شغال لوحدي ومعنديش team work

بس اللي خالاني اتعلم اني لما كنت بواجه مشكله كنت بحاول افكر تتحل ازاي وافكر ايه سبب المشكله ولما افشل خالص و معرفش اوصل لحل كنت بسأل في المنتدي والزملاء مشكورين بيجاوبوني

ولما الزملاء بيقولولي علي الاجابه او حد يديني مثال علي المشكله

كنت باخد الحل وحاول افهمه علشان اتعلم منه وهو ده اللي خلاني مبرمج الحمد لله يعني

بس انا مش متضايق ولا حاجه من اسئلتك وحتي لو في حد اتضايق من اسئلتك في اعضاء كتير قوي بالمنتدي كلهم خبراء مش معقول تسيبي المنتدي علشان واحد

انا بقولك وجه نظري لو شايفه انها غلط كبري دماغك عادي يعني بس انا بقولك من واقع تجربتي الخاصه

وعلي فكره المنتدي هنا من افضل المنتديات العربيه علي الاطلاق بجد فا متفكريش تسيبي المنتدي وتروحي منتدي تاني ولو لورحتي اي منتدي تاني برضو هتلاقي غالبيتنا اعضاؤ فالمنتديات اللي هتروحيها

ارجو انك ماتكونيش متضايقة من كلامي لان الغرض هو افادتك وافادة كل من بالمنتدي

وانا تحت امر اي عضو في المنتدي في اي سؤال استطيع الاجابه عليه

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