![]() |
c# databas & hashtable
Finns det något enkelt sätt att lagra en rad från en databas i en hashtable i c#.
Eg. jag har en tabell med kolumnerna namn, adress, telefonnr etc... Och vill kunna komma åt dom i c# som name= datarad["namn"]; adress = datarad["adress"]; etc. |
Jag är lite osäker på vad du menar när du nämner hashtable men din syntax indikerar att du använder/vill använda variabler.
Hur som helst: Hashtable ht = new Hashtable(); ht.Add("namn", datarad["namn"]); ht.Add("adress", datarad["adress"]); |
Jag har data i en sql tabell med fälten "namn", "adress" etc. och vill komma åt det i c# genom att skriva tex. namn=datarad["namn"]; istället för namn=sqlreader.getString(0);
Jag vet att det går att lösa genom att loopa igenom alla rader och lägga in dom i en hashtable, men det borde finnas någon smidig inbyggd lösningen. |
Du menar sqlreader["namn"]?
Enda problemet är att det är otypat |
Kod:
sql.CommandText = "SELECT name FROM users"; |
Exempel skrivet i C#
Kod:
//C# File: Module1.cs Kod:
//C# Class File: PersonA.cs Kod:
//C# Class File: PersonB.cs Exempel skrivet i Visual Basic .NET: Kod:
'Visual Basic Module File: Module1.bas Kod:
'Visual Basic Class File: PersonA.cls Kod:
|
(Fick ej plats i nom 10k gränsen för ett inlägg så jag får skapa ett nytt ...)
Ovan visar jag på tre olika sätt att göra ett transient objekt som kan bära en komplex blandning av datatyper (dom i en rad i en databas). Alla tre olika metoderna har sina egna fördelar och nackdelar. Hashtable är inte bra sätt att jobba i ett objektorienterat språk för att lagra sammanhängande data. Det är att göra våld på objektorienteringens grundprinciper. Den mest objektoerienterade och kraftffulla metoden nedan är klassen PersonA som använder det mycket kraftfulla begreppet Properties i C#/VB.NET. PersonB använder en gammaldags och lite enklare variant som använder publika instansvariabler för att lagra data i ett objekt. Den tredje och mest primitiva metoden är att använda Strukturer (som den som jobbat med C/C++ känner igen) som jag gör i PersonC Ovan. Här har du i vart fall några olika infallsvinklar som leder dig in på ett mer objektoerienterat synsätt. |
Fick inte plats med det i inlägget men om man lägger denna metod som en egen metod i Module1.bas i Visual Basic så ser man hur enkelt det blir när man jobbar Objektoerienterat:
Kod:
'I VB.NET ser metoden ut så här... Kod:
//I C# ser metoden ut så här... |
Citat:
Det har ingen betydelse att det är otypat, det är mer för att enkelt kunna fixa inläsningen från databas även om man lägger till något fält i databasen. |
Citat:
Eg. varje data för varje PersonA finns lagrat i en databas |
Alla tider är GMT +2. Klockan är nu 14:31. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson