sql >> Database >  >> RDS >> Oracle

Hoe kan ik mijn getters en setters parameters doorgeven aan de verbindingsklasse?

Uw methode GetConnection vereist drie parameters. Je moet ze doorgeven aan de methode.

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();
......

Of u kunt de instantie van UserMembers doorgeven aan de GetConnection-methode, waardoor een overbelasting van GetConnection als volgt ontstaat

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

Als een kanttekening. Als u wilt dat het srID-lid altijd in hoofdletters staat, verplaats deze logica dan naar de setter-eigenschap, en u hoeft zich geen zorgen meer te maken over de juiste opmaak van dit lid wanneer u het probeert terug te lezen

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



  1. C#:Object kan niet van DbNull naar andere typen worden gecast

  2. Mysql-bibliotheken toevoegen en koppelen in een cmakelist.txt

  3. Converteer 'datetime2' naar 'datetimeoffset' in SQL Server (T-SQL-voorbeelden)

  4. MySQL-queryoptimalisatie van LIKE-term% ORDER BY int