27-04-20, 04:08 AM
السلام عليكم و رحمة الله و بركاته
بعض التجارب على قاعدة بيانات اكسس باكواد بسيطة
1-كود جلب اسماء الجداول داخل قاعدة البيانات باستخدام المخطط.
حيث TitleListBox = ListBox
2-كود تغير كلمة السر لقاعدة البيانات
3- انشاء قاعدة بيانات بالكود و ادراج جدول و سجل داخله
استورد فضاء الاسماء Microsoft.Office.Inerop.Access الى مشروعك
الكلاس الخاص بالانشاء
الاستدعاء من اي مكان في الفورم (زر انشاء)
يتم انشاء قاعدة في مسار البرنامج باسم db1 , جدول بداخلها باسم PersonInfos , مع سجل وحيد بداخلها.
تنسيق القاعدة متوافق مع Access 2007.
4- بعض الاكواد للحصول على المعرف (اذا كان لدينا حقل نستخدمه كمعرف)
الحصول على المعرف وفق الطريقة Top
الحصول على المعرف التالي
في حال كان الحقل من النوع ترقيم تلقائي يمكننا بعد عملية الادخال الحصول على الرقم التالي كوسيط مرتد.
بعض التجارب على قاعدة بيانات اكسس باكواد بسيطة
1-كود جلب اسماء الجداول داخل قاعدة البيانات باستخدام المخطط.
PHP كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TitleListBox.DataSource = Nothing
Dim ConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Database1.accdb"
Using cn As New OleDbConnection(ConnectionString)
cn.Open()
Dim dtNames As DataTable = cn.GetSchema("Tables", New String() {Nothing, Nothing, Nothing, "TABLE"})
TitleListBox.DataSource = dtNames
TitleListBox.DisplayMember = "TABLE_NAME"
End Using
End Sub
حيث TitleListBox = ListBox
2-كود تغير كلمة السر لقاعدة البيانات
PHP كود :
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Database1.accdb;Jet OLEDB:Database Password=password;Mode=Share Exclusive;Persist Security Info=True;"
Using cn As New OleDbConnection(connectionString)
Using cmd As New OleDbCommand With {.Connection = cn}
Try
cn.Open()
cmd.CommandText =
<Statement>
ALTER DATABASE PASSWORD "password1" "[password]"
</Statement>.Value
cmd.ExecuteNonQuery()
MsgBox("تم تغير كلمة المرور")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Using
End Using
End Sub
3- انشاء قاعدة بيانات بالكود و ادراج جدول و سجل داخله
استورد فضاء الاسماء Microsoft.Office.Inerop.Access الى مشروعك
الكلاس الخاص بالانشاء
PHP كود :
Imports System
Imports System.Data.OleDb
Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop.Access
Public Class CreateDatabaseLibrary
Private ReadOnly DataBaseName As String
Private ReadOnly _builder As OleDbConnectionStringBuilder = New OleDbConnectionStringBuilder With {.Provider = "Microsoft.ACE.OLEDB.12.0"}
Public Function Execute() As Boolean
If File.Exists(DataBaseName) Then
File.Delete(DataBaseName)
End If
If Create() Then
Return CreateTable()
Else
Return False
End If
End Function
Public Function Create() As Boolean
Try
Dim app As Application = Nothing
app = New Application()
app.NewCurrentDatabase(DataBaseName, AcNewDatabaseFormat.acNewDatabaseFormatAccess2007, Type.Missing)
app.CloseCurrentDatabase()
Marshal.FinalReleaseComObject(app)
app = Nothing
Return True
Catch __unusedException1__ As Exception
Return False
End Try
End Function
Public Function CreateTable() As Boolean
Dim tableName = "PersonInfos"
Using cn = New OleDbConnection(_builder.ConnectionString)
Using cmd = New OleDbCommand(Nothing, cn)
Try
cn.Open()
cmd.CommandText = "CREATE TABLE " & tableName & "( [Id] COUNTER, [FirstName] TEXT(25),[LastName] TEXT(255), [Status] YESNO, [Phone] INT)"
cmd.ExecuteNonQuery()
cmd.CommandText = "INSERT INTO " & tableName & " (FirstName,LastName,Status,Phone) VALUES ('Mazen','Ahmad',True,123456)"
cmd.ExecuteNonQuery()
Return True
Catch __unusedException1__ As Exception
Return False
End Try
End Using
End Using
End Function
Public Sub New(ByVal fileName As String)
DataBaseName = fileName
_builder.DataSource = fileName
End Sub
End Class
PHP كود :
Private Sub btn_CreateDatabase_Click(sender As Object, e As EventArgs) Handles btn_CreateDatabase.Click
Dim DBase = New CreateDatabaseLibrary(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "db1.accdb"))
If DBase.Execute() Then
MessageBox.Show("تم انشاء القاعدة")
Else
MessageBox.Show("اخفقت العملية")
End If
End Sub
يتم انشاء قاعدة في مسار البرنامج باسم db1 , جدول بداخلها باسم PersonInfos , مع سجل وحيد بداخلها.
تنسيق القاعدة متوافق مع Access 2007.
4- بعض الاكواد للحصول على المعرف (اذا كان لدينا حقل نستخدمه كمعرف)
الحصول على المعرف وفق الطريقة Top
PHP كود :
Public Function CurrentID() As Integer
Using cn As New OleDbConnection(ConnectionString)
Using cmd As New OleDbCommand With
{
.Connection = cn,
.CommandText = "SELECT TOP 1 ID FROM Table1 ORDER BY ID DESC;"
}
cn.Open()
Return CInt(cmd.ExecuteScalar())
End Using
End Using
End Function
PHP كود :
Public Function NextID() As Integer
Using cn As New OleDbConnection(ConnectionString)
Using cmd As New OleDbCommand With
{
.Connection = cn,
.CommandText = "SELECT TOP 1 ID FROM Table1 ORDER BY ID DESC;"
}
cn.Open()
Return CInt(cmd.ExecuteScalar()) + 1
End Using
End Using
End Function
PHP كود :
Public Function Increment(_Name As String) As Integer
Using cn As New OleDbConnection(ConnectionString)
Using cmd As New OleDbCommand With
{
.Connection = cn,
.CommandText = "INSERT INTO Table1 (Name) VALUES (?)"
}
cmd.Parameters.AddWithValue("?", _Name)
cn.Open()
Dim result = cmd.ExecuteNonQuery()
If result = 1 Then
cmd.CommandText = "Select @@Identity"
Return CInt(cmd.ExecuteScalar())
Else
Return 0
End If
End Using
End Using
End Function
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال