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

ما المشكلة في هذا الكود

بدأه hemalotfy في 26 مايو 2010 · 4 رد · 644 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قمت بعمل مشروع يحتوي على

Database Sql Server 2008

and

asp.net 2008

وقمت بعمل

insert

update

delete

وقمت بعمل زاير للتحكم والتنقل بين الاصاف

First

Next

Previous

Last

المشكلة تكمن في زاررين التالي واللاحق ( next and precious )

وقمت بوضع هذا الكود في زرار Next

 cn.Open()
        Cmd.Connection = cn
        Cmd.CommandText = "select * from items"
        Dr = Cmd.ExecuteReader
        If Dr.HasRows = False Then
            ResultsLable.Text = "عفوا لا توجد بيانات مسجله في قاعدة البيانات "
            Dr.Close()
            Exit Sub
        End If
        If onH < 0 Then onH = 0
        Dim c As Integer
        For c = 1 To onH
            Dr.Read()
        Next
        If Dr.Read = False Then ResultsLable.Text = "تم الوصول الى اخر السجل"
        Icode.Text = Dr("Icode")
        Iname.Text = Dr("Iname")
        Idate.Text = Dr("IDate")
        Imin.Text = Dr("IMin")
        IKind.Text = Dr("IKind")
        INote.Text = Dr("INote")


        Dr.Close()
        cn.Close()
        onH = onH + 1

وهذا الكود في Previous

cn.Open()
        Cmd.Connection = cn
        Cmd.CommandText = "Select * from Items"
        Dr = Cmd.ExecuteReader
        If Dr.HasRows = False Then
            ResultsLable.Text = "عفوا لا توجد بيانات مسجله في قاعدة البيانات "
            Dr.Close()
            Exit Sub
        End If
        onH = onH - 1
        If onH <= 0 Then onH = 1 : ResultsLable.Text = "تم الوصول الى اول السجل"
        Dim c As Integer
        For c = 1 To onH
            Dr.Read()

        Next
        Icode.Text = Dr("Icode")
        Iname.Text = Dr("Iname")
        Idate.Text = Dr("IDate")
        Imin.Text = Dr("IMin")
        IKind.Text = Dr("IKind")
        INote.Text = Dr("INote")
        Dr.Close()
        cn.Close()

لكن لا يعطيني اي اخطاء نهائيا ويعطيني اول بيانات في اول سجل

تم تعديل هذه المشاركة بواسطة hemalotfy في 26 مايو 2010 في 14:58

#2

السلام عليكم

التنقل في الويب في السجلات ليس سهلا كما في التطبيقات العادية .

المشكلة في الكود اعلاه هو كيفية الاحتفاظ بقيمة onH وغير واضحة من الكود عندك .

واسهل طريقة للاحتفاظ بها هي وضعها في label يكون مخفي كمايلي

onH =integer.parse(LableX.Text )
onH +=1 
LableX.Text = onH.Tostring()
#3

جزاك الله على مساعدتك لي

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

وهذا الكود الكامل بعد التعديل

وهذه هي المعرفات في البداية

 Dim cn As New SqlConnection("Data Source=IBRAHIM-1C3291F;Initial Catalog=DataBase;Integrated Security=True")
    Dim Cmd As New SqlCommand
    Dim Dr As SqlDataReader
    Dim Ad As New SqlDataAdapter
    Dim Dbs As New DataSet
    Dim S As String
    Dim H As Integer
    Dim onH As Integer

  cn.Open()
        Cmd.Connection = cn
        Cmd.CommandText = "select * from items"
        Dr = Cmd.ExecuteReader
        If Dr.HasRows = False Then
            ResultsLable.Text = "عفوا لا توجد بيانات مسجله في قاعدة البيانات "
            Dr.Close()
            Exit Sub
        End If
        If onH < 0 Then onH = 0
        Dim c As Integer
        For c = 1 To onH


            Dr.Read()
        Next
        If Dr.Read = False Then ResultsLable.Text = "تم الوصول الى اخر السجل"

        Icode.Text = Dr("Icode")
        Iname.Text = Dr("Iname")
        Idate.Text = Dr("IDate")
        Imin.Text = Dr("IMin")
        IKind.Text = Dr("IKind")
        INote.Text = Dr("INote")


        Dr.Close()
        cn.Close()
        onH = Integer.Parse(LableX.Text)
        onH += 1
        LableX.Text = onH.ToString()

ورسالة الخطأالتي تظهر هي

Input string was not in a correct format.

وجزاك الله خير

#4

ضع الكود في بداية اجراء زر التالي وليس في نهايته مع تعديل بسيط

if LableX.Text.Length>0 then

onH = Integer.Parse(LableX.Text)

end if

onH += 1

LableX.Text = onH.ToString()

ونفس الكود في زر السابق مع تغيير onH += 1 الى onH -= 1

#5
TareqVB كتب:

ضع الكود في بداية اجراء زر التالي وليس في نهايته مع تعديل بسيط

if LableX.Text.Length>0 then

onH = Integer.Parse(LableX.Text)

end if

onH += 1

LableX.Text = onH.ToString()

ونفس الكود في زر السابق مع تغيير onH += 1 الى onH -= 1

جزاك الله الف خير

تم تعديل الكود والحمدلله اشتغل

وهذا الكود بعد التعديل لكي يستفيد باقي الاعضاء

       If cn.State = ConnectionState.Open Then cn.Close()
        cn.Open()
        Cmd.Connection = cn
        Cmd.CommandText = "select * from items"
        Dr = Cmd.ExecuteReader
        If Dr.HasRows = False Then
            ResultsLable.Text = "عفوا لا توجد بيانات مسجله في قاعدة البيانات "
            Dr.Close()
            Exit Sub
        End If

        If LableX.Text.Length > 0 Then
            onH = Integer.Parse(LableX.Text)
        End If
        onH += 1
        LableX.Text = onH.ToString()


        If onH < 0 Then onH = 0
        Dim c As Integer
        For c = 1 To onH


            Dr.Read()
        Next
        If Dr.Read = False Then ResultsLable.Text = "تم الوصول الى اخر السجل"

        Icode.Text = Dr("Icode")
        Iname.Text = Dr("Iname")
        Idate.Text = Dr("IDate")
        Imin.Text = Dr("IMin")
        IKind.Text = Dr("IKind")
        INote.Text = Dr("INote")


        Dr.Close()
        cn.Close()

تم تعديل هذه المشاركة بواسطة hemalotfy في 27 مايو 2010 في 17:57

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