PDA

View Full Version : نحوه تنظیم Connection String در VB.Net برای SQL



sm
یک شنبه 25 مرداد 1383, 00:23 صبح
با سلام
من توی برنامه از کانکشن استرینگ و کامند برای برقراری ارتباط و ردوبدل کردن داده ها استفاده کردم
مشکلی که وجود داره اینه که چون برنامه رو می خوام روی سیستمهای مختلفی نصب کنم و همه می خوان به SQL نصب شده بر روی سرور مرکزی دسترسی داشته باشند با کانکشن اون مشکل دارم چونکه ممکن است نام سرور عوض شده باشه
می خواستم اگه امکانش هست نام سرور و بقیه اطلاعات لازم جهت تکمیل کردن کانکشن استرینگ را از جایی مانند رجیستری استخراج کنم و کانکشن رو بسازم و وصل به بانک بشم...ولی نمی دونم چطوری
از دوستان می خوام اگه دراین زمینه اطلاعاتی دارن کمکم کنن
ممنون

reham
جمعه 10 مهر 1383, 12:34 عصر
سلام من هم دقیقا همین مشکل رو دارم کمککککککککککککککککککککک :heart:

Naser54
شنبه 11 مهر 1383, 07:56 صبح
سلام روش مورد نظر شما تقریباً یک استاندارد است و من هم به صورت زیر از آن استفاده می‌کنم. امیدوارم به دردتان بخورد:
برای ذخیره کردن پارامترها در رجیستری



Sub WriteCnnParams(ByVal ServerName As String, ByVal DbName As String,ByVal UserName As String,ByVal Password As String)
Try
Dim sReg As Microsoft.Win32.Registry
sReg.LocalMachine.OpenSubKey("SOFTWARE", True).OpenSubKey("MICROSOFT", True).OpenSubKey("WINDOWS", True).OpenSubKey("CURRENTVERSION", True).SetValue("CnnParam_1", ServerName)
sReg.LocalMachine.OpenSubKey("SOFTWARE", True).OpenSubKey("MICROSOFT", True).OpenSubKey("WINDOWS", True).OpenSubKey("CURRENTVERSION", True).SetValue("CnnParam_2", DbName)
sReg.LocalMachine.OpenSubKey("SOFTWARE", True).OpenSubKey("MICROSOFT", True).OpenSubKey("WINDOWS", True).OpenSubKey("CURRENTVERSION", True).SetValue("CnnParam_3", UserName)
sReg.LocalMachine.OpenSubKey("SOFTWARE", True).OpenSubKey("MICROSOFT", True).OpenSubKey("WINDOWS", True).OpenSubKey("CURRENTVERSION", True).SetValue("CnnParam_4", Password)
Catch ex As Exception
MsgBox("Can not set connection parameters", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "Connection Parameters")
End Try
End Sub


و برای خواندن آنها


Function GetCnnStr() As String
Dim ServerName As String = ""
Dim DbName As String = ""
Dim UserName As String = ""
Dim Password As String = ""
Try
Dim sReg As Microsoft.Win32.Registry
ServerName = sReg.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("MICROSOFT").OpenSubKey("WINDOWS").OpenSubKey("CURRENTVERSION").GetValue("CnnParam_1")
DbName = sReg.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("MICROSOFT").OpenSubKey("WINDOWS").OpenSubKey("CURRENTVERSION").GetValue("CnnParam_2")
UserName = sReg.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("MICROSOFT").OpenSubKey("WINDOWS").OpenSubKey("CURRENTVERSION").GetValue("CnnParam_3")
Password = sReg.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("MICROSOFT").OpenSubKey("WINDOWS").OpenSubKey("CURRENTVERSION").GetValue("CnnParam_4")
Catch ex As Exception
MsgBox("Can not get connection parameters", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "Connection Parameters")
End Try
Return "Server=" & ServerName & ";database=" & DbName & ";uid=" & UserName & ";pwd=" & Password
End Function

Naser54
شنبه 11 مهر 1383, 09:19 صبح
البته به نکات زیر توجه کنید:
1- مقادیر پارامترها را رمزگذاری کنید و سپس ذخیره کنید(Encryption)
2-مسیر محل دخیره کاملاً اختیاری است در مثال بالا من مسیر زیر را انتخاب کردم:
LocalMachin->Software->Microsoft->Windows->CurrentVersion
3-کاربر باید مجوزهای لازم برای کار با رجیستری را داشته باشد.

موفق باشید

mahdie
شنبه 28 آذر 1383, 10:47 صبح
من از این روش استفاده می کنم:


Dim oConn As SqlClient.SqlConnection
Dim strConn As String
' Create the Connection object
oConn = New SqlClient.SqlConnection
' Build the connection string
strConn = "Data Source=localhost;Initial Catalog=contract;" _
& "Integrated Security=True"
' Set the Connection String
oConn.ConnectionString = strConn


البته درcatalog باید نام database را قرار دهیم