连接字符串类和使用文本框输入的正确方法?

时间:2013-09-02 19:10:34

标签: c# string winforms oracle connection

我有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                              
                        }
                    }
                }

2 个答案:

答案 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;
        }
    }