-1

我有 Windows 窗体应用程序和以下组件 C#...我还为我的连接字符串创建了连接类。在我的连接字符串中使用 textBox 的最佳方法是什么?我应该为 textBox 输入创建 getter 和 setter 类以生成参数并在我的连接字符串中使用它吗?请举个例子...谢谢!

我的文本框

用户数据源文本框

用户ID文本框

用户密码文本框

我的连接类

class Connection
    {
        public static OracleConnection getConnection()
        {
            OracleConnection con = new OracleConnection("Data Source=" + userDataSourceTextBox.Text + ";User Id=" + usernameTextBox.Text.ToUpper() + ";Password=" + userPasswordTextBox.Text + ";");
            return con;
        }
    }

主窗体

               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                              
                        }
                    }
                }
4

2 回答 2

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;
        }
    }
于 2013-09-02T19:25:40.083 回答
1

您正在寻找从各个组件构建连接字符串的OracleConnectionStringBuilder类。

于 2013-09-02T19:13:41.383 回答