View Full Version : تغییر وضعیت scope کانکشن استرینگ به user
novinmehran
یک شنبه 12 بهمن 1399, 20:18 عصر
سلام
من یک برنامه نوشتم که کانکشن استرینگ رو به صورت داینامیک باشه و خود کاربر بتونه تغییر بده
یه مشکلی که هست توی قسمت setting وضعیت scope کانکشن استرینگ رو نمیتونم توی حالت user بزارم و این ارور read only میده
the king
یک شنبه 12 بهمن 1399, 21:29 عصر
سلام
من یک برنامه نوشتم که کانکشن استرینگ رو به صورت داینامیک باشه و خود کاربر بتونه تغییر بده
یه مشکلی که هست توی قسمت setting وضعیت scope کانکشن استرینگ رو نمیتونم توی حالت user بزارم و این ارور read only میده
اون چیزی که شما می خواهید تغییرش بدهید در app.config ذخیره میشه که اساسا باید Read-Only باشه چون موقع طراحی برنامه تنظیم می کنید، نه موقع اجرا.
مقداری که باید تغییر بدهید در exe.Config. برنامه ذخیره میشه که کنار فایل اجرایی برنامه است.
با منوی ...Project > Add Reference زبانه Assemblies > Framework در پروژه تون به System.Configuration رفرنس بدهید.
Public Sub SetConnectionDataSource( ByVal connectionName As String, ByVal dataSource As String)
Dim configuration = System.Configuration.ConfigurationManager.OpenExeC onfiguration( System.Configuration.ConfigurationUserLevel.None)
Dim section = DirectCast( configuration.GetSection( "connectionStrings"), System.Configuration.ConnectionStringsSection)
Dim settings = section.ConnectionStrings( My.Application.Info.AssemblyName & ".My.MySettings." & connectionName)
Dim connectionStringBuilder As New System.Data.OleDb.OleDbConnectionStringBuilder( settings.ConnectionString)
connectionStringBuilder( "Data Source") = dataSource
settings.ConnectionString = connectionStringBuilder.ConnectionString
configuration.Save( System.Configuration.ConfigurationSaveMode.Modifie d)
System.Configuration.ConfigurationManager.RefreshS ection( "connectionStrings")
End Sub
Public Sub SetConnectionString( ByVal connectionName As String, ByVal connectionString As String)
Dim configuration = System.Configuration.ConfigurationManager.OpenExeC onfiguration( System.Configuration.ConfigurationUserLevel.None)
Dim section = DirectCast( configuration.GetSection( "connectionStrings"), System.Configuration.ConnectionStringsSection)
Dim settings = section.ConnectionStrings( My.Application.Info.AssemblyName & ".My.MySettings." & connectionName)
settings.ConnectionString = connectionString
configuration.Save( System.Configuration.ConfigurationSaveMode.Modifie d)
System.Configuration.ConfigurationManager.RefreshS ection( "connectionStrings")
End Sub
مثلا برای صرفا تغییر Data Source در My.Settings.Connection1 به مقدار جدید :
SetConnectionDataSource("Connection1", "E:\mydatabase.mdb")
یا مثلا برای تغییر کامل Connection String در My.Settings.Connection1 به مقدار جدید :
SetConnectionString("Connection1", "Data Source=.;Initial Catalog=Test;Integrated Security=True")
طبق معمول ویرایشگر فروم کد رو با space های اضافی خراب می کنه. می توانید به کد پیوستی مراجعه کنید.
152979
novinmehran
سه شنبه 14 بهمن 1399, 15:04 عصر
سلام کد من به صورت زیر هست میشه تو این روش به من کمک کنید که از رد اونلی خارج کنم
Public Class ConnectionStringClass Public Sub New()
If System.IO.File.Exists(Application.StartupPath & "\Setting.ini") = False Then
'Start Seting pr
frmErrorDBCon.ShowDialog()
End
End If
Dim ConnectionString As String = ""
FileSystem.FileOpen(1, Application.StartupPath & "\Setting.ini", OpenMode.Input, OpenAccess.Read)
FileSystem.Input(1, ConnectionString)
FileSystem.FileClose(1)
ConnectionString = Strings.Replace(ConnectionString, "@User", "RetirementCenter")
ConnectionString = Strings.Replace(ConnectionString, "@Password", "1070")
My.Settings.RetirementCenterConnectionString = ConnectionString
'SqlCom.SqlCon.ConnectionString = My.Settings.OfficeProviderConnectionString
End Sub
Public Function SetConnection() As Boolean
If System.IO.File.Exists(Application.StartupPath & "\Setting.ini") = False Then
'Start Seting pr
frmErrorDBCon.ShowDialog()
End
Return False
End If
Dim ConnectionString As String = ""
FileSystem.FileOpen(1, Application.StartupPath & "\Setting.ini", OpenMode.Input, OpenAccess.Read)
FileSystem.Input(1, ConnectionString)
FileSystem.FileClose(1)
ConnectionString = Strings.Replace(ConnectionString, "@User", "Municipality")
ConnectionString = Strings.Replace(ConnectionString, "@Password", "1070")
My.Settings.RetirementCenterConnectionString = ConnectionString
SqlCom.SqlCon.ConnectionString = My.Settings.RetirementCenterConnectionString
Return True
End Function
End Class
novinmehran
سه شنبه 14 بهمن 1399, 15:09 عصر
توی کد بالا توی این قسمت ارور میده که رد اونلی هست
SqlCom.SqlCon.ConnectionString = My.Settings.RetirementCenterConnectionString
the king
سه شنبه 14 بهمن 1399, 15:25 عصر
توی کد بالا توی این قسمت ارور میده که رد اونلی هست
SqlCom.SqlCon.ConnectionString = My.Settings.RetirementCenterConnectionString
بجای اینکه بنویسید :
My.Settings.RetirementCenterConnectionString = ConnectionString
بنویسید :
SetConnectionString( "RetirementCenterConnectionString", ConnectionString)
که کد SetConnectionString رو هم قبلا نوشتم.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.