اردت ان اقوم بانشاء Class للتعامل مع قواعد البيانات لمنع التكرار وتسهيل العمل
فقلت لابد وان احد منكم فعل نفس الشئ ويوفر علينا التصميم من البداية
كل محترف لابد وان يكون قد صمم لنفسه Class لاجل هذه المهمة .
عادي يا جماعة Class لا اسرار فيها ، شاركونا بواحدة هههههه
ستحتاج الى انشاء مشروع من نوع Class Libary حتى تحصل في النهاية على ملف DLL تقوم بتضمينه في مشروعك
بداخل المشروع Class Libary اضف ماتريد من الكلاسات على سبيل المثال الكلاس الاول لتنفيذ اوامر الاضافة والتعديل وقراء البيانات .... الخ
الكلاس الثاني تضع بداخله بعض الاوامر الخاصة بالتأكد من مربعات النصوص هل هي فارغة ام لا وغيرها من الاوامر التي تتكرر دائماً في كل مشروع.
هذه بإختصار فكرتي المتواضعة.
إقتباس :ستحتاج الى انشاء مشروع من نوع Class Libary حتى تحصل في النهاية على ملف DLL تقوم بتضمينه في مشروعك
ليس بالضرورة تحويله الى ملف Dll
إقتباس :بداخل المشروع Class Libary اضف ماتريد من الكلاسات على سبيل المثال الكلاس الاول لتنفيذ اوامر الاضافة والتعديل وقراء البيانات .... الخ
الكلاس الثاني تضع بداخله بعض الاوامر الخاصة بالتأكد من مربعات النصوص هل هي فارغة ام لا وغيرها
هذه مكتبة خاصة ، انا اقصد مكتبة عامة تنفع لاي مشروع وهي ما سأنشاءها بحال لم نتحصل على واحدة لاعتمد عليها مستقبلا في انشاء مشاريعي
لو أملك واحدة ما كنت أتاخر على أحد وخصوصا أخ فاضل مثلك
ولكن بحثت الأن فوجدت لك ولى هذة
وأتمنى أن تفيدك أخى الفاضل
رابط الشرح
رابط التحميل
إقتباس :لو أملك واحدة ما كنت أتاخر على أحد وخصوصا أخ فاضل مثلك
تسلم هذا من كريم وابن اخ كريم
إقتباس :ولكن بحثت الأن فوجدت لك ولى هذة
شكرا نوعا ما هي مثل ما اتحدث عنه مشكلتها ليست مفتوحة المصدر يعني لا تستطيع ان تطورها او تعدل فيها
فيها اسلوب لا احبذه ومعقد مثلا
كود :
VB.NET Code
Dim x(0) As ColoumnParam
x(0) = New ColoumnParam("age", ColoumnType.Int, 30)
Modi.UpdateRow("Table_2", x, "name like 'hussien'")
وهنا
كود :
SelectDataSet(TabelName , coloumns , Condition , ColoumnsOrder , ColumnsGROUPBY , ColumnsHAVING )
هذه البرمجة الافقية غير مفيدة ومرهقة انا استخدم البرمجة الرأسية وكل شركات البرمجة تنتهج نفس الاسلوب تقريبا
ولاحظ اسناد القيم للاعمدة برقم الفهرس هذه نفسها مشكلة ومرهقة لو كانت مفتوحة المصدر يغيرها الشخص الى اسم العمود وليس رقمه
كما لاحظت هناك بعض الاخطاء احذر منها مثل
كود :
Modi.UpdateRow("Table_2", x, "name like 'hussien'")
يستخدمون العبارة Like لو كان هناك اسم قريب من هذا سيتم تحديث كل اعمار الذين يوجد تشابه في اسمائهم
او لهم نطق للاسم قريب من بعضه .
على العموم شكرا جزيلا ، يبدو انني بصدد انشاء مكتبة قريبا مفتوحة المصدر ليستفاد منها الجميع فقط احتاج لبعض الوقت حتى أنهي بعض الاعمال
(27-09-18, 03:11 PM)viv كتب : [ -> ]إقتباس :لو أملك واحدة ما كنت أتاخر على أحد وخصوصا أخ فاضل مثلك
تسلم هذا من كريم وابن اخ كريم
إقتباس :ولكن بحثت الأن فوجدت لك ولى هذة
شكرا نوعا ما هي مثل ما اتحدث عنه مشكلتها ليست مفتوحة المصدر يعني لا تستطيع ان تطورها او تعدل فيها
فيها اسلوب لا احبذه ومعقد مثلا
كود :
VB.NET Code
Dim x(0) As ColoumnParam
x(0) = New ColoumnParam("age", ColoumnType.Int, 30)
Modi.UpdateRow("Table_2", x, "name like 'hussien'")
وهنا
كود :
SelectDataSet(TabelName , coloumns , Condition , ColoumnsOrder , ColumnsGROUPBY , ColumnsHAVING )
هذه البرمجة الافقية غير مفيدة ومرهقة انا استخدم البرمجة الرأسية وكل شركات البرمجة تنتهج نفس الاسلوب تقريبا
ولاحظ اسناد القيم للاعمدة برقم الفهرس هذه نفسها مشكلة ومرهقة لو كانت مفتوحة المصدر يغيرها الشخص الى اسم العمود وليس رقمه
كما لاحظت هناك بعض الاخطاء احذر منها مثل
كود :
Modi.UpdateRow("Table_2", x, "name like 'hussien'")
يستخدمون العبارة Like لو كان هناك اسم قريب من هذا سيتم تحديث كل اعمار الذين يوجد تشابه في اسمائهم
او لهم نطق للاسم قريب من بعضه .
على العموم شكرا جزيلا ، يبدو انني بصدد انشاء مكتبة قريبا مفتوحة المصدر ليستفاد منها الجميع فقط احتاج لبعض الوقت حتى أنهي بعض الاعمال
جزاك الله خيرا على الشرح والتوضيح
وزادك علما ورفع قدرك أخى الكريم
مرحباً اخى viv
تفضل اخى الحبيب هذا كلاس يمكنك استخدامه
اتمنى ان يفيدك وان يسهل عليك الاكو كثيراً
كود :
Imports System.Data.SqlClient
Imports System.IO
Public Class Cls_Con
Dim sqlcon As New SqlConnection
Public Sub New()
sqlcon = New SqlConnection("كود الاتصال")
End Sub
Public Sub open_con()
If sqlcon.State = ConnectionState.Closed Then
sqlcon.Open()
End If
End Sub
Public Sub close_con()
If sqlcon.State = ConnectionState.Open Then
sqlcon.Close()
End If
End Sub
Public Sub execute_txt(ByVal txt_ As String)
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.Text
cmd.Connection = sqlcon
open_con()
cmd = New SqlCommand(txt_, sqlcon)
cmd.ExecuteNonQuery()
close_con()
End Sub
Public Sub execute_store(ByVal name_ As String, ByVal prm() As SqlParameter)
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = sqlcon
open_con()
For i As Integer = 0 To prm.Length - 1
cmd.Parameters.Add(prm(i))
Next
cmd.ExecuteNonQuery()
close_con()
End Sub
Public Function select_txt(txt_ As String) As DataTable
Dim dt As New DataTable
dt.Clear()
Dim adp As New SqlDataAdapter(txt_, sqlcon)
adp.Fill(dt)
Return dt
End Function
Public Function select_stoe(name_ As String, prm() As SqlParameter) As DataTable
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = sqlcon
open_con()
For i As Integer = 0 To prm.Length - 1
cmd.Parameters.Add(prm(i))
Next
Dim adp As New SqlDataAdapter(cmd)
Dim dt As New DataTable
dt.Clear()
adp.Fill(dt)
Return dt
close_con()
End Function
End Class
لاستخدام الاضافة والتعديل والحذف يمكنك استخدام الكود بهذا الشكل
كود :
con.execute_txt("الكود الاضافة / التعديل / الحذف")
يمكنك استخدام ايضاً Function الخاص بـ execute_store
ولكود الـ
Select
كود :
Dim dt As New DataTable
dt = con.select_txt("كود الـ Select")
يمكنك استخدام ايضاً Function الخاص بـ select_stoe
اعتقد الامر اصبح ابسط واسهل بكثير مما تتخير عند الاستخدام
ولا يوجد به اى تعقيدات او كتابة اسطر وتحقق وما شبه عند الاستخدام
الكود المطرح لـ Sql
بتعديلات بسيطة يمكنك ان تجعله لـ Access
تحياتى لك
وتمنياتى لك التوفيق
الشكر لله والحمد لله
والحمد لله على كل حال
لا عليك خد ووقتك كما تشاء
تحياتى لك
وتمنياتى لك التوفيق