تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في الحفظ في الاكسس
#21
يعرضهم فين مانوع الاداة ضع توضيح على سؤالك .

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

كود عرض جداول قاعدة بيانات سيكول سيرفير في ليست بوكس :

PHP كود :
       Dim cn As New SqlClient.SqlConnection("Server=" ComboServer ";database=" ComboDatabase ";integrated security=False;User ID=" TxtUserId ";Password=" TxtPassword)
 
       Dim da As New SqlClient.SqlDataAdapter("Select Name AS 'Table_Name' From dbo.sysObjects Where xtype='u' order by Name"cn)
 
       Dim dt As New DataTable
        da
.Fill(dt)
 
       ListTable.items.Clear()
 
       For Each row As DataRow In dt.Rows
            ListTable
.Items.Add(row(0).ToString)
 
       Next 

و هذ كود تعبئة جداول الموجودة بقاعدة بيانات اكسيس من نوع 2007 فما فوق :

PHP كود :
   Public Sub GetDatabaseTablesAccdb(TableNames As DataGridView)
 
       Dim OpenAccess As New OpenFileDialog With {.Filter "Microsost Access 2007-2016|*.accdb|All File|*.*", .ShowHelp True}
 
       If OpenAccess.ShowDialog DialogResult.OK Then
            FileName 
OpenAccess.FileName
            Label11
.Text OpenAccess.SafeFileName
            Dim DatabaseConnectionString 
As String =
 
        <Connection>
 
        Provider=Microsoft.ACE.OLEDB.12.0;
 
        data source=<%= FileName %>;
 
        User Id=admin;
 
        Jet OLEDB:Database Password=<%= TxtPasswordAcc.Text %>;
 
        </Connection>.Value
            Dim cn 
As New OleDbConnection(DatabaseConnectionString)
 
           DatabaseDir.Text FileName
            Try
                If cn
.State ConnectionState.Closed Then cn.Open()
 
           Catch ex As Exception
                MsgBox
(ex.Message)
 
           End Try
 
           Dim dt As DataTable = New DataTable With {.TableName "test"}
 
           dt cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {NothingNothingNothing"TABLE"})
 
           cn.Close()
 
           TableNames.Rows.Clear()
 
           For x As Integer 0 To dt.Rows.Count 1
                TableNames
.Rows.Add(dt.Rows(x)(2))
 
           Next
        End 
If
 
   End Sub 

و هذا لقواعد البيانات اكسيس 1997- 2003 :

PHP كود :
   Public Sub GetDatabaseTablesAccdb(TableNames As DataGridView)
 
       Dim OpenAccess As New OpenFileDialog With {.Filter "Microsost Access 2007-2016|*.accdb|All File|*.*", .ShowHelp True}
 
       If OpenAccess.ShowDialog DialogResult.OK Then
            FileName 
OpenAccess.FileName
            Label11
.Text OpenAccess.SafeFileName
            Dim DatabaseConnectionString 
As String =
 
        <Connection>
 
        Provider=Microsoft.ACE.OLEDB.12.0;
 
        data source=<%= FileName %>;
 
        User Id=admin;
 
        Jet OLEDB:Database Password=<%= TxtPasswordAcc.Text %>;
 
        </Connection>.Value
            Dim cn 
As New OleDbConnection(DatabaseConnectionString)
 
           DatabaseDir.Text FileName
            Try
                If cn
.State ConnectionState.Closed Then cn.Open()
 
           Catch ex As Exception
                MsgBox
(ex.Message)
 
           End Try
 
           Dim dt As DataTable = New DataTable With {.TableName "test"}
 
           dt cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {NothingNothingNothing"TABLE"})
 
           cn.Close()
 
           TableNames.Rows.Clear()
 
           For x As Integer 0 To dt.Rows.Count 1
                TableNames
.Rows.Add(dt.Rows(x)(2))
 
           Next
        End 
If
 
   End Sub 
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#22
السلام عليكم اخي الكريم
(جربت اخلي الداتا جريد فيو = nothing منفعتش بحاجة)
قبل ان تملا الداتا غرايد بجدول جديد قم بالغاء ارتباطها بالداتاسورس القديمة واجعلها بدون داتا سورس لتستقبل الجديدة
اكتب هذا الكود بدل الجملة السابقة
كود :
DataGridView1.DataSource = Nothing
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







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



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


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