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

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

مغلق
بدأه ابوأنس في 13 يوليو 2005 · 11 رد · 1,277 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نبذة:

هذا الـNamespace يستفاد منه في الإرتباط بقواعد البيانات وعمل جميع العمليات عليها وهو ينقسم الى 2Classes الإول هو OleDBCls وهذا يمنكن الإرتباط مع غالبية قواعد البيانات والآخر هو SqlCleintCls ويستفاد منه في الإرتباط بقاعدة بيانات SQL Server وقد تمت برمجنه بالكامل بلغة Visual Basic .NET

كيفية الإستخدام:

-إنسخ الكود وضعه في ملف جديد في مشروعك.

-أكتب مايلي:

      
  'Visual Basic .NET
'================ 
Import db
Class T1
Sub Test()
Dim dbObj as new SqlClientCls()
dbObj.Connection="Put Connection String Here"
dbObj.strSQL= "insert into Customers(Name) values ('Khalid')"
dbObj.SQLDO(dbObj.strSQL,db.ExecuteNonQuery)
End Sub
End Class

=============================================================
//Visual C#.NET
//============ 
using db;
class T1
{
public void Test()
{
SqlClientCls dbObj = new SqlClientCls();
dbObj.Connection="Put Connection String Here";
dbObj.strSQL= "insert into Customers(Name) values ('Khalid')";
dbObj.SQLDO(dbObj.strSQL,db.ExecuteNonQuery);
} 
}

Code:

'########################################  
'########Contact me:####### #############
'######Email:w3_webdeveloper@yahoo.com###
'######Please Dont Remove this Header####
'######################################## 
Namespace db

Public Class OLEDBCLS
Public ds As DataSet
Public dt As DataTable
Public strSQL As String
Private SQLstr As String
Public temp As String
Private _ConnectionString As String
Public dr As OleDb.OleDbDataReader
Private DBcommand As OleDb.OleDbCommand
Private conStr, Str As String
Private DBconnection As OleDb.OleDbConnection
Private DBReader As OleDb.OleDbDataReader
Private DBdataSet As DataSet
Private DBadapter As OleDb.OleDbDataAdapter
Private DBdataView As DataView
Public Property ConnectionString() As String
Get
Return _ConnectionString
End Get
Set(ByVal Value As String)
_ConnectionString = Value
End Set
End Property
Sub New() 

End Sub
Sub New(ByVal ConnectString As String)
ConnectionString = ConnectString
End Sub

Function DataSet_Select(ByVal SQL As String, Optional ByVal table As String = "") As DataSet
Dim connection As New OleDb.OleDbConnection(ConnectionString)
If connection.State <> ConnectionState.Open Then
connection.Open()
End If
Dim strSQL As String
Dim c As Integer
strSQL = SQL
Dim da As New OleDb.OleDbDataAdapter(strSQL, connection)
DBdataSet = New DataSet
If table <> "" Then
da.Fill(DBdataSet, table)
Else
da.Fill(DBdataSet)
End If
connection.Close()
Return DBdataSet
End Function
Enum sqlType
ExecuteNonQuery = 0
ExecuteScalar = 1
End Enum

Public Function SQL_DO(ByVal SQL As String, ByVal type As sqlType, Optional ByVal _CommandType As CommandType = CommandType.Text) As String 'Implements IDbClass.SQL_DO
Dim result As String
DBconnection = New OleDb.OleDbConnection(ConnectionString)
DBcommand = New OleDb.OleDbCommand(SQL, DBconnection)
DBcommand.CommandType = _CommandType

If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
Select Case (type)
Case 0 'ExecuteNonQuery
DBcommand.ExecuteNonQuery()
DBconnection.Close()
Return "non"
Case 1 'ExecuteScalar
If DBcommand.ExecuteScalar() Is DBNull.Value Then
DBconnection.Close()
Return ""
Else
result = DBcommand.ExecuteScalar()
DBconnection.Close()
Return result
End If
End Select
End Function

Public Function Reader(ByVal SQL As String, Optional ByVal _CommandType As CommandType = CommandType.Text) As OleDb.OleDbDataReader
DBconnection = New OleDb.OleDbConnection(ConnectionString)
DBcommand = New OleDb.OleDbCommand(SQL, DBconnection)
DBcommand.CommandType = _CommandType
If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
DBReader = DBcommand.ExecuteReader()
Return DBReader
End Function
End Class

Public Class SQLCLIENTCLS
Public ds As DataSet
Public dt As DataTable
Public strSQL As String
Private SQLstr As String
Public temp As String
Private _ConnectionString As String
Public dr As SqlClient.SqlDataReader
Private DBcommand As SqlClient.SqlCommand
Private conStr, Str As String
Private DBconnection As SqlClient.SqlConnection
Private DBReader As SqlClient.SqlDataReader
Private DBdataSet As DataSet
Private DBadapter As SqlClient.SqlDataAdapter
Private DBdataView As DataView
Private Param As SqlClient.SqlParameter
Public Property ConnectionString() As String
Get
Return _ConnectionString
End Get
Set(ByVal Value As String)
_ConnectionString = Value
End Set
End Property
Sub New(ByVal strConnection As String)
If strConnection <> "" Then
ConnectionString = strConnection
Else
Throw New Exception("Empty Connection String is not Vailied")
End If
End Sub
Sub New()

End Sub
Sub New(ByVal workstationid As String, ByVal database As String, Optional ByVal userid As String = "sa", Optional ByVal password As String = "")
ConnectionString = "workstation id=" + workstationid + ";packet size=4096;user id=" + userid + ";password=" + password + ";initial catalog=" + database + ";persist security info=False"
End Sub
Function Dataset_Select(ByVal SQL As String, Optional ByVal table As String = "", Optional ByVal _CommandType As CommandType = CommandType.Text) As DataSet
Dim connection As New SqlClient.SqlConnection(ConnectionString)
If connection.State <> ConnectionState.Open Then
connection.Open()
End If
Dim strSQL As String
Dim c As Integer
strSQL = SQL
DBcommand = New SqlClient.SqlCommand(SQL)
DBcommand.CommandType = _CommandType
DBcommand.Connection = connection
Dim da As New SqlClient.SqlDataAdapter(DBcommand)
DBdataSet = New DataSet
If table <> "" Then
da.Fill(DBdataSet, table)
Else
da.Fill(DBdataSet)
End If
connection.Close()
Return DBdataSet
End Function
Enum sqlType
ExecuteNonQuery = 0
ExecuteScalar = 1
ExecuteReader = 2
End Enum

Public Function SQL_DO(ByVal SQL As String, ByVal type As sqlType, Optional ByVal _CommandType As CommandType = CommandType.Text) As String 'Implements IDbClass.SQL_DO
Dim result As String
DBconnection = New SqlClient.SqlConnection(ConnectionString)
DBcommand = New SqlClient.SqlCommand(SQL, DBconnection)
DBcommand.CommandType = _CommandType

If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
Select Case (type)
Case 0 'ExecuteNonQuery
DBcommand.ExecuteNonQuery()
DBconnection.Close()
Return "non"
Case 1 'ExecuteScalar
If DBcommand.ExecuteScalar() Is DBNull.Value Then
DBconnection.Close()
Return ""
Else
result = DBcommand.ExecuteScalar()
DBconnection.Close()
Return result
End If
End Select
End Function
Sub StoredProceder_1st(ByVal StoredProcederName As String)
DBcommand = New SqlClient.SqlCommand(StoredProcederName)
DBcommand.CommandType = CommandType.StoredProcedure
End Sub
Sub AddParameter_3rd(ByVal ParameterName As String, ByVal value As Object, ByVal dbfType As SqlDbType, Optional ByVal Size As Integer = 0)
Select Case Size
Case 0
Param = New SqlClient.SqlParameter(ParameterName, dbfType)
Case Else
Param = New SqlClient.SqlParameter(ParameterName, dbfType, Size)
End Select
Param.Value = value
DBcommand.Parameters.Add(Param)
End Sub
Function ExecuteStoredProceder_4th(ByVal type As sqlType) As Object
DBconnection = New SqlClient.SqlConnection(ConnectionString)
DBcommand.Connection = DBconnection
If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
Select Case type
Case sqlType.ExecuteNonQuery
DBcommand.ExecuteNonQuery()
DBcommand.Parameters.Clear()
Case sqlType.ExecuteScalar
If DBcommand.ExecuteScalar() Is DBNull.Value Then
DBconnection.Close()
DBcommand.Parameters.Clear()
Return ""
Else
Dim result As String = DBcommand.ExecuteScalar()
If DBconnection.State = ConnectionState.Open Then
DBconnection.Close()
End If
DBcommand.Parameters.Clear()
Return CType(result, String)
End If
Case sqlType.ExecuteReader
dr = DBcommand.ExecuteReader()
Return dr
End Select
End Function
Function ExecuteStoredProcederDS_4th() As DataSet
DBconnection = New SqlClient.SqlConnection(ConnectionString)
DBdataSet = New DataSet
DBcommand.Connection = DBconnection
If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
DBadapter = New SqlClient.SqlDataAdapter(DBcommand)
DBadapter.Fill(DBdataSet)
If DBconnection.State = ConnectionState.Open Then
DBconnection.Close()
End If
Return DBdataSet
End Function

'this sub is required befor adding parameters to the command
Sub ClearCommandParameters_2nd()
DBcommand.Parameters.Clear()
End Sub

Public Function Reader(ByVal SQL As String, Optional ByVal _CommandType As CommandType = CommandType.Text) As SqlClient.SqlDataReader
Str = ConnectionString
DBconnection = New SqlClient.SqlConnection(Str)
DBcommand = New SqlClient.SqlCommand(SQL, DBconnection)
DBcommand.CommandType = _CommandType
If DBconnection.State = ConnectionState.Closed Then
DBconnection.Open()
End If
DBReader = DBcommand.ExecuteReader()
Return DBReader
End Function
 End Class
End Namespace
#2

جزاك الله خير ياأستاذنا الفاضل وليتك لو تتكرم وتنزل لمستوانا من الفهم وتوضح أكثر ولو كان هناك مثال بكون امنيح اكتير ويعطيك اياها العافية ربي

#3

عمر ما كانت الطريقه دي تنفع في البرمجه أبدا ولا في أي لغه ولا لأي غرض ,,,

أحسن حاجه لو عايز تنزل دروس انك تمشي واحده واحده مع الناس ,,,

فعلي الأرجح ان انت نسخت الكود ثم لصقته من أي برنامج أو موقع ,,,

:rolleyes: بس بدون زعل :rolleyes:

#6

حفظك الله ورعاك وجزاك الله على هذا المجهود الرائع

وإن كنت من الناس المشغولين دائماً والله لا يشغلك إلا في طاعته

فأنصحك عند كتابة أي كود ضع تعليق عليه لكي يفهمون الأخوان الكرام المبتدئين وأنا أولهم

ورحم الله والديك ورزقك بالجنة والحور العين

#7

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

ثانيا يا أخي إذا كنت مشغولا فكان ينبغي عليك الإنتظار حتى تستطيع أن تكمل الموضوع, لأن كود كهذا ممكن أن يصيبنا نحن المبتدئئب بصدمة عنيفة :blink: :lol:

و حقيقتا كما لا يخفى عليك الأكواد موجودة في كل مكان لكن الشرح الجيد و خاصتا بالغة العربية ليس كذلك فما فائدة الكود بدون الشرح :unsure:

أرجو أن لا تصدم من كلامي لكن هذا ما وددت أن أقوله

#8

السلام عليكم

حارى التحميل والدراسة وجزاكم الله خيرا من الاول

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#9

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

إفعل ما يلي لتستخدم الكلاس:

-انسخ الكود كاملا

-افتح مشروع فيجوال بيسك جديد

-اضف ملف كلاس جديد

-إلصق الكود داخل ملف الكلاس

>> بهذا قد هيئت الكلاس للإستخدام في مشروعك

هنالك في الواقع كلاسين:

1-OLEDBCLS : ويستخد للتعامل مع أكثر من نوع من قواعد البيانات

2- SQLClientCLS: ويستخدم للتعامل مع قواعد البيانات من نوع SQL SERVER

يوجد مجموعة من الإجراءات والخصائص:

- الخصيصة: connectionString -> ضع نص الاتصال بقاعدة البياتات

-SQL_Do(SQL,ExeceutingType): يستخد الاجراء للتالي:

--Insert:

SQL_DO("Insert Stetment",ExecuteNoneQuery)

--update:

SQL_DO("update Stetment",ExecuteNoneQuery)

--Delete:

SQL_DO("delete Stetment",ExecuteNoneQuery)

--Select:(ترجع قيمة واحدة)

result=SQL_DO("select Stetment",ExecuteScalar)

-الإجراء DataSet_Select :

ويستخدم لارجاع داتا سيت من قاعدة البيانات على اساس جملة select

dim ds as dataset=DataSet_Select("select statement")

تم تعديل هذه المشاركة بواسطة W3Developer في 7 سبتمبر 2005 في 00:08

#11

شكراً لك

اتمنى ان تراعى استخدام ال Interfaces و ال Overloding مع وجود التعليقات Comments ليسهل فهم الملف و تطويره لاحقاً

قمت سابقاً بتصميم كلاس شبيه لعملك تقريباً و إن لم اكمله لانى وجدت ان عمل Class Wrapper قد يضيف طبقة اخرى من التعقيد فى بعض الاحيان و سيكون من الاسهل استخدام ال ADO.NET Classes مباشرة (مجرد وجهة نظر)

تغيرت وجهة نظرى فى مشروع كبير نوعاً ما حيث وجدت ان عمل ال Class Wrapper سيكون مفيداً

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

هذا الموضوع مغلق.

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