منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : module in vb6 and vb.net 2012
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عندي مشكله في vb.net 2012 تتمثل في الاعلان عن puplic sub  في موديول حيث اني اريد ان اقوم بعمل pulic sub connection  يقوم بفتح الاتصال بقاعدة البيانات سيكول او اكسيس وانادي عليه من اي مكان في اي فورم  فافتح الاتصال وافعل ما اريد بقاعده البيانات ثم اغلق الاتصال

في vb6  كان الموضوع سهل
اما في .net  الموضوع صعب علي لاني ما اعرف اضع الكود sub connection  في الكلاس العام ولا خارج الكلاس العام  ، وكمان انا مش عارف اين اضع imports system.data.csqlclient  بره الكلاس ولا داخل الكلاس؟


افيدونا افادكم الله بالنسبه لموضوع الاماكن الخاصه بالاعلان
شكل الموديول يكون غالبا بهذا الشكل و اضافة مرجع لاي كلاس يكون فوق اسم الكلاس أو الموديول

PHP كود :
Imports System.Data.SqlClient

Module ConnectionModule
    Friend 
Function GetData(connectionString As String) As SqlConnection
        Return 
New SqlConnection(connectionString)
 
   End Function

End Module 

ولاستدعاء الدالة من الموديول
PHP كود :
       ' الحصول علي البيانات من الموديول
        Using conn As SqlConnection = ConnectionModule.GetData("Your Connection String")

        End Using 


هناك طريقة اخري و يمكنك بها الاستغناء عن الموديول وهي انك تبني كلاس بهذا الشكل و تجعل كل الدوال Functions او الروتينات Sub الموجودة به من النوع Shared


PHP كود :
Imports System.Data.SqlClient

Friend NotInheritable 
Class ConnectionManager
    Friend Shared 
Function GetData(connectionString As String) As SqlConnection
        Return 
New SqlConnection(connectionString)
 
   End Function

End Class 
ولإستدعاء الدالة من الكلاس

PHP كود :
       ' الحصول علي البيانات من الكلاس
        Using conn As SqlConnection = ConnectionManager.GetData("Your Connection String")

        End Using 

وفي كلتا الحالات ستجد انه و لإضافة مرجع لأي كلاس أخر يجب ان تتم اضافته في اعلي الكلاس أو قبل بداية الكلاس او الموديول
شكرا silverlight على سرعة الرد
ولكن في استفسار تاني بعد اذنك
بالنسبه لموضوع friend ممكن نبذه سريعه مختصره ايه الموضوع ده؟
شكرا تاني

هذا الكود بعد التعديل واضافة موديول يجمع كل المتغيرات ... هل هذه الطريقه صحيحه ام تنصحني باضافة شئ او تعديل شئ او تغيير الطريقه بالكامل
المشروع مجرد تجربه للفرق بين
OLEDB & SQLClient
للاتصال بسيرفبر SQL
كود :
'general declare in module1.vb
Imports System.Data.OleDb
Imports System.Data.SqlClient

Module Module1
   'declare all variables in form1
   Public DAT As New DataTable
   Public CoNn As New OleDbConnection("connection string;")
   Public CMd As New OleDbCommand
   Public SQLStr As String = "select * from table"
   Public DA As New OleDbDataAdapter(SQLStr, CoNn)


   'declare all cariables in form2
      Public SQlselecT As String = "select * from table"
public SQLCON As New SqlConnection("connection string;")
   Public SQLDA As New SqlDataAdapter(SQlselecT, SQLCON)
   Public SQLDS As New DataSet
   Public dt As New DataTable

End Module
وفي الفورم 1 في الحدث load ندخل الاتي:-
كود :
CoNn.Open()
       DA.Fill(DAT)
       DataGridView1.DataSource = DAT
       DA.Dispose()
       CoNn.Close()
وفي الفورم 2 في الحدث Load نخل النص البرمجي الاتي:-
كود :
SQLCON.Open()
       SQLDA.Fill(dt)
       DataGridView1.DataSource = dt
       SQLDA.Dispose()
       SQLCON.Close()