Mam bazę danych SQL Server 2008 i pracuję nad nią na zapleczu. Pracuję na asp.net/C#
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//how do I read strings here????
}
Wiem, że czytelnik ma wartości. Moje polecenie SQL polega na wybraniu tylko jednej kolumny z tabeli. Kolumna zawiera TYLKO ciągi. Chcę czytać ciągi (wiersze) w czytniku jeden po drugim. Jak mam to zrobic?
Wpisz nazwę kolumny, która zacznie zwracana z bazy danych, gdzie
"ColumnName"
jest. Jeśli jest to ciąg, możesz użyć.ToString()
. Jeśli jest to inny typ, musisz go przekonwertować za pomocąSystem.Convert
.źródło
to będzie działać
źródło
toString()
nie jest ważne, powinno być.ToString()
po prostuPojedynczy wynik:
W przypadku wielu wyników:
źródło
Pomyślałem o udostępnieniu mojej metody pomocniczej tym, którzy mogą z niej korzystać:
Stosowanie:
Metoda pomocnika rzutuje na dowolną wartość, którą chcesz, jeśli nie może rzutować lub wartość bazy danych jest równa NULL, wynik będzie równy null.
źródło
reader.GetColumn<int>("M_ID");
Właściwie to sam doszedłem do wniosku, że mogę to zrobić:
źródło
Trim()
nie został wymieniony w pytaniu i tak jest tutaj, ale nie w innych odpowiedziach.Wiem, że to trochę stare, ale jeśli czytasz zawartość SqlDataReader do klasy, będzie to bardzo przydatne. nazwy kolumn czytelnika i klasy powinny być takie same
źródło
Uważam, przed użyciem
SqlDataReader
tutaj; ADO.NET ma wiele przypadków skrajnych i komplikacji, a z mojego doświadczenia wynika, że większość ręcznie napisanego kodu ADO.NET jest zepsuta przynajmniej w jeden sposób (zwykle subtelny i kontekstowy).Istnieją narzędzia, aby tego uniknąć. Na przykład w przypadku, gdy chcesz przeczytać kolumnę ciągów. Dapper sprawia, że jest to całkowicie bezbolesne:
Dapper zajmuje się tutaj całą parametryzacją, wykonywaniem i przetwarzaniem wierszy - oraz wieloma innymi nieregularnymi szczegółami ADO.NET.
<string>
Można zastąpić<SomeType>
materializować całe wiersze do obiektów.źródło
Mówiąc najprościej, jeśli zapytanie zwraca nazwę_kolumny i zawiera ciąg:
źródło
Mam funkcję pomocniczą, taką jak:
następnie używam go do wyodrębnienia ciągu:
źródło
Zwykle czytam dane przez czytnik danych w ten sposób. właśnie dodałem mały przykład.
źródło
Musisz
read
database column
tutaj. Możesz rzucić okiem na następujący fragment koduźródło