منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[مشروع] أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أمثلة ومشاريع قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=77)
+--- الموضوع : [مشروع] أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف (/showthread.php?tid=24607)



أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - سعود - 21-04-18




فورم العرض والتصفح
كود :
'#####################################
'##########برمجة أخيكم سعود ########
'########## 1439 ah | 2018  ##########

'@ http://vb4arb.com/vb/member.php?action=register&uid=21 @
'#####################################
Public Class Form1
   Dim rows As Integer = 0
   Dim list As New List(Of String)
   Dim pa As Integer = 0
   Private Sub rowscount()
       Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
           Using cm As New OleDb.OleDbCommand("select count(tid) from tb", con)
               If con.State = ConnectionState.Closed Then con.Open()
               rows = cm.ExecuteScalar
               If con.State = ConnectionState.Open Then con.Close()
           End Using
       End Using
   End Sub


   Private Sub setgroup()
       lbl.Text = pa & " From " & list.Count - 1
   End Sub

   Private Function pagecount() As Integer
       Dim wanted As Double = (rows / 5)
       Dim Rounded As Integer = Math.Round(wanted)
       If Rounded < wanted Then
           wanted = Rounded + 1
       Else
           wanted = Rounded
       End If
       Return wanted
   End Function

   Private Sub Addrows()
       For r As Integer = 1 To 100
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
               Using cm As New OleDb.OleDbCommand("insert into tb(tname) values(@tname)", con)
                   cm.Parameters.AddWithValue("@tname", "Name:_" & r)
                   If con.State = ConnectionState.Closed Then con.Open()
                   cm.ExecuteNonQuery()
               End Using
               If con.State = ConnectionState.Open Then con.Close()
           End Using
       Next
   End Sub

   Public Sub gd()
       rowscount()
       '(ItemsNumber * t) - ItemsNumber
       For t As Integer = 1 To pagecount()
           Dim m As Integer = (5 * t) - 5
           If m > 0 Then
               list.Add(m)
           End If
       Next
       Button1.PerformClick()

   End Sub


   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       gd()
   End Sub






   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       '  If list.Count <= 0 Then Exit Sub
       Dim sql As String = ""
       tid.DataBindings.Clear()
       tname.DataBindings.Clear()
       dob.DataBindings.Clear()
       pic.DataBindings.Clear()
       pa = 0
       If list.Count = 0 Then
           sql = "select top 5 * from tb"
       Else
           sql = "select top " & list(pa) & " * from tb"
       End If


       Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
           Using da As New OleDb.OleDbDataAdapter(sql, con)
               Using dt As New DataTable
                   da.Fill(dt)
                   tid.DataBindings.Add("text", dt, "tid")
                   tname.DataBindings.Add("text", dt, "tname")
                   dob.DataBindings.Add("text", dt, "dob", True)
                   pic.DataBindings.Add("image", dt, "pic", True)
                   d.DataSource = dt

                   d.Columns(0).HeaderText = "م"
                   d.Columns(0).Width = 50
                   d.Columns(1).Width = 200
                   d.Columns(2).Width = 150
                   d.Columns(3).Width = 130

                   d.Columns(1).HeaderText = "الاسم"
                   d.Columns(2).HeaderText = "الميلاد"
                   d.Columns(3).HeaderText = "الصورة"
               End Using
           End Using
       End Using
       setgroup()
   End Sub

   Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       tid.DataBindings.Clear()
       tname.DataBindings.Clear()
       dob.DataBindings.Clear()
       pic.DataBindings.Clear()
       If list.Count = 0 Then Exit Sub

       pa = list.Count - 1
       Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
           Using da As New OleDb.OleDbDataAdapter("select top 5 * from tb where tid not in (select top " & list(pa) & " tid from tb)", con)
               Using dt As New DataTable
                   da.Fill(dt)
                   tid.DataBindings.Add("text", dt, "tid")
                   tname.DataBindings.Add("text", dt, "tname")
                   dob.DataBindings.Add("text", dt, "dob", True)
                   pic.DataBindings.Add("image", dt, "pic", True)

                   d.DataSource = dt
               End Using
           End Using
       End Using
       setgroup()
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       tid.DataBindings.Clear()
       tname.DataBindings.Clear()
       dob.DataBindings.Clear()
       pic.DataBindings.Clear()

       If list.Count = 0 Then Exit Sub
       If pa = list.Count - 1 Then
           Button4.PerformClick()
       Else


           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
               Using da As New OleDb.OleDbDataAdapter("select top 5 * from tb where tid not in (select top " & list(pa) & " tid from tb)", con)
                   Using dt As New DataTable
                       da.Fill(dt)
                       tid.DataBindings.Add("text", dt, "tid")
                       tname.DataBindings.Add("text", dt, "tname")
                       dob.DataBindings.Add("text", dt, "dob", True)
                       pic.DataBindings.Add("image", dt, "pic", True)

                       d.DataSource = dt
                   End Using
               End Using
           End Using
           pa += 1
         
           setgroup()

       End If




   End Sub


   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       tid.DataBindings.Clear()
       tname.DataBindings.Clear()
       dob.DataBindings.Clear()
       pic.DataBindings.Clear()


       If pa = 0 Then
           Button1.PerformClick()
       Else
           pa -= 1
           If pa < 0 Then
               pa = 0
           End If
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
               Using da As New OleDb.OleDbDataAdapter("select top 5 * from tb where tid not in (select top " & list(pa) & " tid from tb)", con)
                   Using dt As New DataTable
                       da.Fill(dt)
                       tid.DataBindings.Add("text", dt, "tid")
                       tname.DataBindings.Add("text", dt, "tname")
                       dob.DataBindings.Add("text", dt, "dob", True)
                       pic.DataBindings.Add("image", dt, "pic", True)

                       d.DataSource = dt
                   End Using
               End Using
           End Using
       End If
       setgroup()
   End Sub






   Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
       Addone.ShowDialog()
   End Sub

   Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
       Editone.tid.Text = Me.tid.Text
       Editone.tname.Text = Me.tname.Text
       Editone.dob.Text = Me.dob.Text
       Editone.pic.Image = Me.pic.Image
       Editone.ShowDialog()
   End Sub

   Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
       Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
           Using cm As New OleDb.OleDbCommand("delete from tb where tid=@tid", con)
               cm.Parameters.AddWithValue("@tid", Val(tid.Text))
               If con.State = ConnectionState.Closed Then con.Open()
               cm.ExecuteNonQuery()
               If con.State = ConnectionState.Open Then con.Close()
               Button1.PerformClick()
           End Using
       End Using

   End Sub
End Class
فورم الاضافة
كود :
Imports System.IO

Public Class Addone

   Private Sub pic_Click(sender As Object, e As EventArgs) Handles pic.Click
       Dim o As New OpenFileDialog
       If o.ShowDialog = Windows.Forms.DialogResult.OK Then
           pic.Image = Image.FromFile(o.FileName)
       End If
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If tname.Text.Trim = "" Or dob.Text.Trim = "" Then
           MsgBox("اضف اسم وتاريخ ميلاد", MsgBoxStyle.Critical, "")
           Exit Sub
       End If

       If IsNothing(pic.Image) = False Then
           Dim ms As New MemoryStream
           pic.Image.Save(ms, pic.Image.RawFormat)
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
               Using cm As New OleDb.OleDbCommand("insert into tb(tname,dob,pic) values(@tname,@dob,@pic)", con)
                   cm.Parameters.AddWithValue("@tname", tname.Text)
                   cm.Parameters.AddWithValue("@dob", CDate(dob.Text).ToShortDateString)
                   cm.Parameters.AddWithValue("@pic", ms.ToArray)
                   If con.State = ConnectionState.Closed Then con.Open()
                   cm.ExecuteNonQuery()
               End Using
               If con.State = ConnectionState.Open Then con.Close()
           End Using
       Else
           'Dim ms As New MemoryStream
           '  pic.Image.Save(ms, pic.Image.RawFormat)
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
               Using cm As New OleDb.OleDbCommand("insert into tb(tname,dob) values(@tname,@dob)", con)
                   cm.Parameters.AddWithValue("@tname", tname.Text)
                   cm.Parameters.AddWithValue("@dob", CDate(dob.Text).ToShortDateString)
                   ' cm.Parameters.AddWithValue("@pic", ms.ToArray)
                   If con.State = ConnectionState.Closed Then con.Open()
                   cm.ExecuteNonQuery()
               End Using
               If con.State = ConnectionState.Open Then con.Close()
           End Using

       End If

       Close()
       Form1.gd()
       Form1.Button4.PerformClick()
   End Sub
End Class
فورم التعديل
PHP كود :
Imports System.IO

Public Class Editone

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        If IsNothing
(pic.Image) = False Then
            Dim ms 
As New MemoryStream
            pic
.Image.Save(mspic.Image.RawFormat)
 
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
 
               Using cm As New OleDb.OleDbCommand("update tb set tname=@tname,dob=@dob,pic=@pic where tid=@tid"con)
 
                   cm.Parameters.AddWithValue("@tname"tname.Text)
 
                   cm.Parameters.AddWithValue("@dob"CDate(dob.Text).ToShortDateString)
 
                   cm.Parameters.AddWithValue("@pic"ms.ToArray)
 
                   cm.Parameters.AddWithValue("@tid"Val(tid.Text))

 
                   If con.State ConnectionState.Closed Then con.Open()
 
                   cm.ExecuteNonQuery()
 
               End Using
                If con
.State ConnectionState.Open Then con.Close()
 
           End Using
        Else
            
'Dim ms As New MemoryStream
            ' 
 pic.Image.Save(mspic.Image.RawFormat)
 
           Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
 
               Using cm As New OleDb.OleDbCommand("update tb set tname=@tname,dob=@dob where tid=@tid"con)
 
                   cm.Parameters.AddWithValue("@tname"tname.Text)
 
                   cm.Parameters.AddWithValue("@dob"CDate(dob.Text).ToShortDateString)
 
                   ' cm.Parameters.AddWithValue("@pic", ms.ToArray)
                    cm.Parameters.AddWithValue("@tid", Val(tid.Text))

                    If con.State = ConnectionState.Closed Then con.Open()
                    cm.ExecuteNonQuery()
                End Using
                If con.State = ConnectionState.Open Then con.Close()
            End Using

        End If

        Close()
    End Sub

    Private Sub pic_Click(sender As Object, e As EventArgs) Handles pic.Click
        Dim o As New OpenFileDialog
        If o.ShowDialog = Windows.Forms.DialogResult.OK Then
            pic.Image = Image.FromFile(o.FileName)
        End If

    End Sub
End Class 


مستغرب من حاجة!Sad
فيجوال استوديو 2017 مخرجاته ضخمة تصور مشروع لا يحتوي الا على ملف اكسس بسيط وفارغ وحجمه المشروع ميجا ونص!!!


RE: أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - عبد العزيز البسكري - 21-04-18

السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الكريم " سعود "
مثال رائع ربنا يزيدك من علمه و فضلة .. فقط بعد إذنك ملاحظة صغيرة أرجو تقبّلها بصدر رحب
لو عن طريق السهو مثلما حدث معي كتبت نص و ليس تاريخ بتاكست تاريخ الميلاد .. ينتج خطأ
تحياتي



RE: أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - سعود - 21-04-18

(21-04-18, 01:37 PM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الكريم " سعود "
مثال رائع ربنا يزيدك من علمه و فضلة .. فقط بعد إذنك ملاحظة صغيرة أرجو تقبّلها بصدر رحب
لو عن طريق السهو مثلما حدث معي كتبت نص و ليس تاريخ بتاكست تاريخ الميلاد .. ينتج خطأ
تحياتي

الامر بسيط اخي الكريم لان الهدف الاساسي لوضع المثال هو التصفح فقط  اما هذا التاريخ فالتحقق منه سهل للغاية.

PHP كود :
 If IsDate(dob.Text) = False Then
            MsgBox
("حقل التاريخ خاطيء"MsgBoxStyle.Critical"")
 
           Exit Sub
        End 
If 



RE: أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - abdou - 17-11-22

شكرا علي المثال
ولدي استفسار .؟ ليه بتكرر نص الاتصال في كل حدث ؟

Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")


RE: أحدث مثال(لماقدمته) لتصفح البيانات مجموعة مجموعة وليس صف صف - سعود - 19-11-22

(17-11-22, 01:12 PM)abdou كتب : شكرا علي المثال
ولدي استفسار .؟ ليه بتكرر نص الاتصال في كل حدث ؟

 Using con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")

حسب الشروح اللي اطلعت عليها و نصائح الاخوة هنا انه يتم غلق الاتصال بعد انتهاء الاجراء المطلوب,,,,و يمكنك الاستغناء عنها باي اجراء تراه مناسب .