Laden...

MySql Select in Objekt umwandeln

Erstellt von Ploetzi vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.257 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 12 Jahren
MySql Select in Objekt umwandeln

verwendetes Datenbanksystem: <MySQL>

Hallo,
ich habe ein Select,aus dem würde ich gerne Daten direkt in ein Objekt geben (Liste etc.)

Momentan lese ich nur die Zeilen aus:

            MySqlCommand command = connection.CreateCommand();
            command.CommandText = "SELECT * FROM users1";
            MySqlDataReader Reader;
            connection.Open();
            Reader = command.ExecuteReader();
            string row = "";
            while (Reader.Read())
            {
                 row = "";
                 for (int i = 0; i < Reader.FieldCount; i++)
                     row += Reader.GetValue(i)+",";
            }
            return row;

Wie mache ich das?

1.564 Beiträge seit 2007
vor 12 Jahren

Hallo

Schau dir mal O/R-Mapper wie NHibernate an. Ansonsten kannst du aber natürlich auch mit reader.GetString(i)/GetInt32(i)/.... in Properties eines Objektes mappen, statt einen String zusammenzuhängen.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 12 Jahren

Nja, ich habe mir gedacht, vl. kann man eine solche zeile direkt in ein objekt reinlesen
struct xx{
int as;
string cx;
string kf;
}
usw.

1.564 Beiträge seit 2007
vor 12 Jahren

Wie schon gesagt, ein ORM würde das für dich übernehmen, wenn du native ADO.NET verwendest musst du's selbst mappen.

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

T
415 Beiträge seit 2007
vor 12 Jahren

Wenn du den OR-Mapper umgehen willst dann passe doch deine Reader-Funktionalität an. Wie Florian schon sagte, befülle einfach damit die Properties deines Objekts. Kleines Beispiel:


class Person
{
    int ID{ get; set; }
    string Name { get; set; }
}

Und im Reader dann so:


while (Reader.Read())
{
    person.ID = Convert.ToInt32(Reader["id"]);
    person.Name = Reader["name"].ToString();
}

2.891 Beiträge seit 2004
vor 12 Jahren

Und im Reader dann so

Oder via Reflection (z.B. indem du Propertynamen auf Spaltennamen mappst).

F
10.010 Beiträge seit 2004
vor 12 Jahren

Und für die, die nicht auf grosse ORMapper stehen, gibt es Micro-ORMs wie Dapper oder PetaPoco