webForumDet fria alternativet

hjälp med ska en structor som retunera flera värden

.NET

3 svar · 595 visningar · startad av annasmurf

Medlem sedan mars 2006237 inlägg
Frågan#1

har denna kod, men vill returner flera värden, någon pratade om en structor, men jag vet inte hur jag ska lösa detta

    public string GetPersonsBypersonId(int personId)
    {
        try
        {
            sqlConnection = new SqlConnection(connectionString);
            storedProcedure = "GetPersonsBypersonId";
            sqlCommand = new SqlCommand(storedProcedure, sqlConnection);
            sqlCommand.CommandType = CommandType.StoredProcedure;

            #region - Add parameters -
            SqlParameter paramPersonId = new SqlParameter("@personId", SqlDbType.Int);
            paramPersonId.Value = personId;
            sqlCommand.Parameters.Add(paramPersonId);
            #endregion

            sqlConnection.Open();
            sqlDataReader = sqlCommand.ExecuteReader();
            string firstName = "";
           
           
            while (sqlDataReader.Read())
            {
                firstName = (string)sqlDataReader["firstname"];
                       
            }
 sqlDataReader.Close(); 
            sqlConnection.Close();

            return firstName;

jag vill alltså returnera sirname oxå! förstår ni vad jag menar! tacksam för hjälp

Medlem sedan juni 2009920 inlägg
#2

Du kan skapa en struct, eller en class där de olika värdena du vill returnera finns med. Sen i slutet av metoden skapar du en instans av denne och sätter värdena innan du returnerar.

Medlem sedan mars 2006237 inlägg
#3

kan du ge mig exempel på hur det kan se ut?

Medlem sedan jan. 20011 140 inlägg
#4

Person klass

public class Person 
{
    public string firstName {get;set;}
    public string sirName {get;set;}

    public Person() {}
}

metoden

public Person GetPersonsBypersonId(int personId)
    {
        try
        {
            sqlConnection = new SqlConnection(connectionString);
            storedProcedure = "GetPersonsBypersonId";
            sqlCommand = new SqlCommand(storedProcedure, sqlConnection);
            sqlCommand.CommandType = CommandType.StoredProcedure;

            #region - Add parameters -
            SqlParameter paramPersonId = new SqlParameter("@personId", SqlDbType.Int);
            paramPersonId.Value = personId;
            sqlCommand.Parameters.Add(paramPersonId);
            #endregion

            sqlConnection.Open();
            sqlDataReader = sqlCommand.ExecuteReader();
           
           Person person = new Person();
            while (sqlDataReader.Read())
            {
                person.firstName = (string)sqlDataReader["firstname"];
                person.sirName = (string)sqlDataReader["sirname"];
                       
            }
 sqlDataReader.Close(); 
            sqlConnection.Close();

            return person;

Istället för att returnera strängen med namnet så returnerar du ett Person objekt.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)