简体   繁体   English

如何将getter和setter参数传递给连接类?

[英]How can I pass my getters and setters parameters to connection class?

I assigned the textbox inputs to getters and setters also created one connection class. 我将文本框输入分配给getter,setter也创建了一个连接类。 How can I pass my getters and setters parameters to connection class so I can use it inside my mainform. 如何将getter和setter参数传递给连接类,以便我可以在mainform中使用它。

MemberClass 成员类

private string srDatabase = "";
private string srID = "";
private string srPass = "";

public string SDB
{
    get
    {
        return srDatabase;
    }
    set
    {
        srDatabase= value;
    }
}
public string SID
{
    get
    {
        return srID ;
    }
    set
    {
        srID = value;
    }
}
public string SPassword
{
    get
    {
        return srPass ;
    }
    set
    {
        srPass = value;
    }
}

ConnectionClass ConnectionClass

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

MainForm 的MainForm

        UserMembers  = new UserMembers();

        txtSrcUserDatabase.Text = src.srDatabase ;
        txtSrcUserID.Text=src.srID.ToUpper();
        txtSrcUserPassword.Text = src.srPass;



               OracleConnection conn1 = Connection.GetConnection() // **here error**
               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                              
                        }
                    }
                }

Your method GetConnection requires three parameters. 您的方法GetConnection需要三个参数。 You need to pass them to the method. 您需要将它们传递给方法。

UserMembers  src = new UserMembers();

src.srDatabase =txtSrcUserDatabase.Text;
src.srID = txtSrcUserID.Text.ToUpper();
src.srPass = txtSrcUserPassword.Text;
OracleConnection conn1 = Connection.GetConnection(src.srDatabase, src.srID, src.srPass) 
conn1.Open();
......

Or you could pass the instance of UserMembers to the GetConnection method creating an overload of GetConnection like this 或者您可以将UserMembers的实例传递给GetConnection方法,从而像这样创建GetConnection的重载

class Connection
{
    // the first overload that takes 3 string parameters
    public static OracleConnection GetConnection(string dataSource, string userName, string password)
    {
        .... 
    }

    // The second overload that takes an instance of UserMembers
    public static OracleConnection GetConnection(UserMembers src )
    {
        OracleConnection con = null;
        if(!string.IsNullOrWhiteSpace(sr.srDatabase) && !string.IsNullOrWhiteSpace(sr.srID) && !string.IsNullOrWhiteSpace(sr.srPass))
        {
                con = new OracleConnection("Data Source=" + sr.srDatabase + ";User Id=" + sr.srID.ToUpper() + ";Password=" + sr.Pass + ";");
        }
        return con;
    }
}

As a side note. 作为旁注。 If you need the srID member to be always in upper case then move this logic in the setter property, and you could stop to worry about the proper formatting of this member when you try to read it back 如果您需要srID成员始终为大写,那么在setter属性中移动此逻辑,当您尝试将其读回时,您可以停止担心该成员的正确格式

public string SID
{
    get  { return srID ; }
    set  { srID = value.ToUpper(); }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我如何访问从单独的类到主类的getter和setter(在C#中向下转换) - How do I get access to getters and setters from a separate class to the main class(with downcasting in C#) 如何在Visual Studio中为getter和setter以及构造函数自动生成标准代码? - How can I auto generate standard code for getters and setters and constructors in Visual Studio? 如何使Visual Studio CTRL-KD不展开getter和setter - How can I get Visual Studio CTRL-K-D to not unroll getters and setters 如何在 [Setup] 或 [OneTimeSetup] 中传递参数,以便我不必在测试类中调用该方法? - How can I pass parameters in a [Setup] or [OneTimeSetup] so I so not have call the method in my test class? 我们如何在 Visual Studio 中生成 getter 和 setter? - How can we generate getters and setters in Visual Studio? 在定义变量的类中使用getter和setters? - Use getters and setters in class that defines variables? 等效于类中集合的getter / setter - Equivalent of getters/setters for collections within a class 使用DTO类的简单获取器/设置器查找属性 - Finding properties with simple getters/setters of a DTO class 如何将参数从parentViewModel传递到ViewModel? - How can I pass parameters from a parentViewModel to my ViewModel? 如何将附加参数传递给集中式事件处理程序? - How can I pass addition parameters to my centralized event handlers?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM