Wpis z mikrobloga

#programowanie #chsarp #naukaprogramowania

Mirki, mam pewien problem, mianowicie mam bazę danych MS SQL 2016 i chcę pobrać pierwszy rekord z zapytania poprzez program w C#. Wcześniej mi się to udawało (w MySql), natomiast teraz mam z tym problem.

Mianowicie, zawsze zwraca mi null, lecz w programie obsługującym MS SQL działa bez problemu.

Zapytanie jest takie samo.
W kodzie nic, w programie wynik jest :(
Podgrzeję atmosferę, mówiąc, że dodawanie/edytowanie danych za pomocą kodu działa bez problemu.

Pomoże ktoś?

Obrazek w pełnej rozdzielczości - Kliknij w "wtf.png"
MroczekBall3D - #programowanie #chsarp #naukaprogramowania 

Mirki, mam pewien prob...

źródło: comment_Yte36xkhhTjD5FeZBcmLCi1QLzdjGdvm.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rysiekryszard: sprawdzałem bez 'as user', dalej null
@mrleon: Patrzałem również z readerem, i tutaj, o dziwo, HasRows = true, ale w Results nic nie ma, jednakże jak dam query = "SELECT * FROM USERS;", to HasRows = true a w Results mam 11 pustych wyników, dasz radę sobie to wyobrazić, czy zrzut? :P
  • Odpowiedz
@MroczekBall3D: chodziło mi o to, że ExecuteScalarAsync wykonuje zapytanie na bazie i zwraca jedną wartość, skalar, np. liczbę zmodyfikowanych wierszy. QueryAsync wykona zapytanie i zwróci ci listę wierszy
  • Odpowiedz
@MroczekBall3D:
1.Sprawdź czy łączysz się do dobrej bazy.
2. Rzutowanie object z ExecuteScalar na User to niezbyt dobry pomysł.
3. Pokaż ss z użycia SqlDataReadera, rozwinięciem jakiegoś rezultatu.
  • Odpowiedz
@MroczekBall3D: Super, ten ExecuteScalar powinien również zadziałać w takim sensie że powinieneś odstać wartość 11 (pierwsza wartość pierwszej kolumny) wg MSDN, o ile oczywiście nie rzutowałbyś go na User :) :

The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. Returns a maximum of 2033 characters.
  • Odpowiedz