我有一个应用程序,希望将文本框中的用户输入的用户名密码端口服务名传递给连接字符串,以便可以将其用于Oracle数据库连接。
示例:
string conString = "User Id=hr;Password=hr;Data Source=localhost:1523/orcl.162.0.7;";
代替值User Id
hr => textuser_id.Text
代替password
hr => textpass.Text
值
答案 0 :(得分:2)
在应用程序中嵌入用户名和密码绝不是一个好主意。主要是因为大多数代码最终都存储在诸如github之类的代码存储库中,并且您不希望将用户和密码提供给公司中其他团队或其他github用户使用。它所要做的只是不经意地公开了一个仓库,突然之间任何人都可以访问您的数据库。 一些替代方案包括
不过,据您所知,如何操作字符串的一些例子包括
public string CreateConnectionString(string user, string password)
{
string optionOne = "User Id="+user+";Password="+password+";Data Source=localhost:1523/orcl.162.0.7;";
// String interpolation
string optionTwo = $"User Id={user};Password={password};Data Source=localhost:1523/orcl.162.0.7;";
// Many more ways
return optionTwo;
}
答案 1 :(得分:0)
您可以使用string.Format:
string constring = string.Format("User Id={0};Password={1};Data Source=localhost:1523/orcl.162.0.7;", textuser_id.Text, textpass.Text);
您还可以在字符串前面使用$:
string constring = $"User Id={textuser_id.Text};Password={textpass.Text};Data Source=localhost:1523/orcl.162.0.7;";
区别:
string.Format:在{}中使用数字来指示值在字符串后的位置。
$:使用{}中的值。
对我来说,使用$更容易,但是您可以同时使用两者。
祝你好运!