我有windows表单应用程序和下面的组件C#...我也为我的连接字符串创建了连接类。在我的连接字符串中使用textBox的最佳方法是什么?我应该为textBox输入创建getter和setter类来生成参数并在我的连接字符串中使用它吗?请举个例子......谢谢!
我的文字框
userDataSourceTextBox
userIDTextBox
userPasswordTextBox
Myconnection Class
class Connection
{
public static OracleConnection getConnection()
{
OracleConnection con = new OracleConnection("Data Source=" + userDataSourceTextBox.Text + ";User Id=" + usernameTextBox.Text.ToUpper() + ";Password=" + userPasswordTextBox.Text + ";");
return con;
}
}
MainForm
OracleConnection conn1 = Connection.getConnection()
conn1.Open();
using (OracleCommand Names = new OracleCommand("SELECT TABLE_NAME FROM USER_TABLES ORDER BY TABLE_NAME", conn1))
{
using (OracleDataReader reader = Names.ExecuteReader())
{
while (reader.Read())
{
//Do something
}
}
}
答案 0 :(得分:1)
您正在寻找OracleConnectionStringBuilder
class,它会从各个组件构建连接字符串。
答案 1 :(得分:1)
通过查看您的代码,显而易见,您没有适当的代码结构。永远不要耦合UI和DAL层。 UI和DAL层应完全解耦。
一种常见的方法是这样的:
UI图层 - >业务层 - >数据访问层 - 持久性存储(数据库,文件等)
在您的情况下,您可以将GetConnection()
更改为参数化方法,并将所需的值传递给它。
class Connection
{
public static OracleConnection GetConnection(string dataSource, string userName, string password)
{
OracleConnection con = null;
if(!string.IsNullOrWhiteSpace(dataSource) && !string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(password))
{
con = new OracleConnection("Data Source=" + dataSource + ";User Id=" + userName.ToUpper() + ";Password=" + password + ";");
return con;
}
return con;
}
}