Passwords 如何在运行时向数据集提供密码?
我有一个带有密码的数据库。 如果我允许使用connectionstring保存密码,它将在.config文件中可见 如何在运行时设置相同的值 检查: 但是需要一些方法来更改设置本身中的connectionstring,以避免在许多位置进行更改Passwords 如何在运行时向数据集提供密码?,passwords,dataset,connection-string,Passwords,Dataset,Connection String,我有一个带有密码的数据库。 如果我允许使用connectionstring保存密码,它将在.config文件中可见 如何在运行时设置相同的值 检查: 但是需要一些方法来更改设置本身中的connectionstring,以避免在许多位置进行更改 更新:这是windows窗体应用程序。这可以通过覆盖以下属性来实现。 步骤 转到“设置” 点击查看代码 在视图代码中添加以下代码 Vb,Net Default Public Overrides Property Item(ByVal propertyN
更新:这是windows窗体应用程序。这可以通过覆盖以下属性来实现。 步骤
Default Public Overrides Property Item(ByVal propertyName As String) As Object
Get
If propertyName = "MyConnectionString" Then
Return MyBase.Item(propertyName) & ";Password=Yourpassword;"
End If
Return MyBase.Item(propertyName)
End Get
Set(ByVal value As Object)
MyBase.Item(propertyName) = value
End Set
End Property
C#(使用代码转换器转换的粗略代码)
通过使用
数据集
,我使用了以下代码:
myDataSet myData = new myDataSet();
myDataSetTableAdapters.myTableAdapter myInfo =
new myDataSetTableAdapters.myTableAdapter();
myInfo.Connection.ConnectionString += ";Password=myPassword";
myInfo.Fill(myData.Info);
您可以自由设置tableAdapters连接字符串的任何部分。刚刚测试过的功能C#代码(基于@Sachin Chavan的精彩答案)。必须将覆盖放置在Settings.cs文件中:
public override object this[string propertyName]
{
get
{
if (propertyName == "nameOfYourConnectionStringProperty")
{
return base[propertyName].ToString().Replace("******", "Y0uRpA$sW0rD");
}
return base[propertyName];
}
set { base[propertyName] = value; }
}
public override object this[string propertyName]
{
get
{
if (propertyName == "nameOfYourConnectionStringProperty")
{
return base[propertyName].ToString().Replace("******", "Y0uRpA$sW0rD");
}
return base[propertyName];
}
set { base[propertyName] = value; }
}