عندي مشكله في 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()