تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف احول هذا الكود من ربط ب اكسس الي sql
#1
كود :
Imports System.Data.OleDb

Public Class Form1
   Dim sql As String
   Dim Conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data source=|DataDirectory|\Treedb.accdb;")
   Dim ds As New DataSet
   Dim dt As New DataTable
   Dim da As New OleDbDataAdapter
   Dim dv As New DataView
   Dim cmd As New OleDbCommand
   Dim nodeAuthor As TreeNode
   Dim nodeTitle As TreeNode
   Dim isupdate As Boolean
   Private Sub CreateTree(ByVal TV As TreeView)
       sql = "SELECT RootID, RootName, ParentID, RootLevel, RootID & ' : ' & RootName as MyRoot FROM tblRoots Order By RootID"
       ds = New DataSet
       dt = New DataTable
       da = New OleDbDataAdapter(sql, Conn)
       da.Fill(ds, "tblRoots")
       dv = New DataView(ds.Tables("tblRoots"))
       dt = dv.ToTable

       Dim MaxLevel1 As Integer = CInt(dt.Compute("MAX(RootLevel)", ""))

       Dim i, j As Integer

       For i = 0 To MaxLevel1
           Dim Rows1() As DataRow = dt.Select("RootLevel = " & i)
           For j = 0 To Rows1.Count - 1
               Dim ID1 As String = Rows1(j).Item("RootID").ToString
               Dim Name1 As String = Rows1(j).Item("RootName").ToString
               Dim Parent1 As String = Rows1(j).Item("ParentID").ToString
               Dim FullID As String = Rows1(j).Item("MyRoot").ToString

               If Parent1 = "-1" Then
                   TV.Nodes.Add(ID1, Name1)
               Else
                   Dim TreeNodes1() As TreeNode = TV.Nodes.Find(Parent1, True)
                   If TreeNodes1.Length > 0 Then
                       TreeNodes1(0).Nodes.Add(ID1, FullID)
                   End If
               End If
           Next
       Next
   End Sub

   Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
       TV.Nodes.Clear()
       CreateTree(TV)
       TV.ExpandAll()
       TV.SelectedNode = TV.Nodes(0)
       For Each ctrl As Control In Me.GroupBox1.Controls
           If TypeOf ctrl Is TextBox Then
               ctrl.Text = ""
           End If
       Next
       isupdate = True
   End Sub

   Private Sub جديدToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles جديدToolStripMenuItem.Click, btnNew.Click
       Dim str As String = ""
       Dim NameStr As String = ""
       If TV.Nodes.Count > 0 Then
           If TV.SelectedNode.Text = "دليل الحسابات" Then
               txtParentAcc.Text = "0"
               txtParentName.Text = "دليل الحسابات"
               Exit Sub
           End If
           For i As Integer = 0 To TV.SelectedNode.Text.Length - 1
               If TV.SelectedNode.Text.ToCharArray(i, 1) = " " Then
                   If TV.SelectedNode.Text.ToCharArray(i + 1, 1) = ":" Then
                       Exit For
                   End If
               End If
               str += TV.SelectedNode.Text.ToCharArray(i, 1)
               NameStr = TV.SelectedNode.Text.ToString.Substring(str.Length + 2, TV.SelectedNode.Text.ToString.Length - str.Length - 2)
           Next
           txtAccID.Text = ""
           txtParentAcc.Text = str
           txtParentName.Text = NameStr
           txtAccName.Text = ""
           sql = "SELECT Top 1 RootID, RootName, ParentID, RootLevel FROM tblRoots WHERE ParentID=" & CInt(txtParentAcc.Text) & " Order By RootID Desc"
           ds = New DataSet
           dt = New DataTable
           da = New OleDbDataAdapter(sql, Conn)
           da.Fill(ds, "tblRoots")
           dv = New DataView(ds.Tables("tblRoots"))
           dt = dv.ToTable
           If dt.Rows.Count > 0 Then
               txtAccID.Text = dt.Rows(0)(0) + 1
               txtLevel.Text = dt.Rows(0)(3)
           Else
               txtAccID.Text = txtParentAcc.Text & "1"
               sql = "SELECT Top 1 RootID, RootName, ParentID, RootLevel FROM tblRoots WHERE RootID=" & CInt(txtParentAcc.Text) & " Order By RootID Desc"
               ds = New DataSet
               dt = New DataTable
               da = New OleDbDataAdapter(sql, Conn)
               da.Fill(ds, "tblRoots")
               dv = New DataView(ds.Tables("tblRoots"))
               dt = dv.ToTable
               txtLevel.Text = dt.Rows(0)(3)
           End If
       End If
       isupdate = False
   End Sub

   Private Sub TV_NodeMouseClick(ByVal sender As Object, ByVal e As TreeNodeMouseClickEventArgs) Handles TV.NodeMouseClick
       If e.Button = Windows.Forms.MouseButtons.Right Then
           TV.SelectedNode = e.Node
       End If
   End Sub


   Private Sub TV_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TV.AfterSelect
       If TV.Focused Then
           Dim str As String = ""
           Dim NameStr As String = ""
           If TV.SelectedNode.Text = "دليل الحسابات" Then
               Exit Sub
           End If
           For i As Integer = 0 To TV.SelectedNode.Text.Length - 1
               If TV.SelectedNode.Text.ToCharArray(i, 1) = " " Then
                   If TV.SelectedNode.Text.ToCharArray(i + 1, 1) = ":" Then
                       Exit For
                   End If
               End If
               str += TV.SelectedNode.Text.ToCharArray(i, 1)
               NameStr = TV.SelectedNode.Text.ToString.Substring(str.Length + 2, TV.SelectedNode.Text.ToString.Length - str.Length - 2)
           Next
           txtAccID.Text = str
           txtAccName.Text = NameStr
       End If
   End Sub


   Private Sub تعديلToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles تعديلToolStripMenuItem.Click, bntUpdate.Click
       If txtAccID.Text = "" Then
           Exit Sub
       End If
       If isupdate = True Then
           cmd = New OleDbCommand("UPDATE tblRoots SET  RootName=@RootName WHERE RootId=" & CInt(txtAccID.Text), Conn)
           With cmd.Parameters
               .AddWithValue("@RootName", txtAccName.Text)
               .AddWithValue("@ParentID", txtParentAcc.Text)
               .AddWithValue("@RootLevel", txtLevel.Text)
           End With
           Conn.Open()
           cmd.ExecuteNonQuery()
           Conn.Close()
           Button2_Click(Nothing, Nothing)
       Else
           cmd = New OleDbCommand("INSERT INTO tblRoots VALUES(@RootID, @RootName, @ParentID, @RootLevel)", Conn)
           With cmd.Parameters
               .AddWithValue("@RootID", txtAccID.Text)
               .AddWithValue("@RootName", txtAccName.Text)
               .AddWithValue("@ParentID", txtParentAcc.Text)
               .AddWithValue("@RootLevel", txtLevel.Text)
           End With
           Conn.Open()
           cmd.ExecuteNonQuery()
           Conn.Close()
           Button2_Click(Nothing, Nothing)
       End If

   End Sub

   Private Sub حذفToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles حذفToolStripMenuItem.Click, btnDelete.Click
       If txtAccID.Text = "" Then
           Exit Sub
       End If
       If isupdate = True Then
           If TV.SelectedNode.Text = "دليل الحسابات" Then
               Exit Sub
           End If
           If MsgBox("هل تريد حذف الحساب؟", MsgBoxStyle.YesNo, "دليل الحسابات") = MsgBoxResult.Yes Then
               cmd = New OleDbCommand("DELETE FROM tblRoots WHERE ParentID=" & CInt(txtAccID.Text), Conn)
               Conn.Open()
               cmd.ExecuteNonQuery()
               Conn.Close()


               cmd = New OleDbCommand("DELETE FROM tblRoots WHERE RootId=" & CInt(txtAccID.Text), Conn)
               Conn.Open()
               cmd.ExecuteNonQuery()
               Conn.Close()
               Button2_Click(Nothing, Nothing)
           End If
       End If

   End Sub

   Private Sub الغاءToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles الغاءToolStripMenuItem.Click, btnCancel.Click
       Button2_Click(Nothing, Nothing)
   End Sub

   Private Sub خروجToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles خروجToolStripMenuItem.Click, btnClose.Click
       If MsgBox("هل تريد الخروج", MsgBoxStyle.YesNo, "دليل الحسابات") = MsgBoxResult.Yes Then
           End
       End If
   End Sub

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
       Button2_Click(Nothing, Nothing)




   End Sub


End Class
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 169 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 264 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 193 20-02-24, 12:00 AM
آخر رد: Kamil
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 206 19-01-24, 12:42 PM
آخر رد: Taha Okla
  [VB.NET] إعادة استدعاء البيانات من قاعدة بيانات اكسس والاهم الصورة مبرمج صغير 1 1 273 13-01-24, 01:17 PM
آخر رد: مبرمج صغير 1
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 464 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  جملة الاتصال بقاعدة البيانات اكسس محمد خيري 4 362 12-12-23, 03:14 AM
آخر رد: محمد خيري
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 431 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  استعلام من عدة جداول لقاعدة بيانات اكسس Adel27213 12 1,070 09-11-23, 05:27 PM
آخر رد: justforit
  [سؤال] اريد تغيير اسم حقل ضمن جدول بقاعدة بيانات اكسس mh66 1 358 08-11-23, 08:16 AM
آخر رد: justforit

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم