| Autor |
Nachricht |
supernicky
Mitglied
Benutzerprofil
Anmeldungsdatum: 06.11.2011
Beiträge: 122
|
supernicky Mitglied
17:48:28 28.04.2012 Titel: |
Webanwendung mit ASP.NET und SQL Server2008 - Abfrage bringt fehler bei richtigem Ergebnis |
Zitieren |
Hallo zusammen,
der Titel hört sich etwas merkwürdig an aber ich komme nicht weiter..
Situation..
DB MS SQL Server 2008 Express und ASP.NET zum abfragen.
Ich möchte die DB nach einen Eintrag durchsuchen bei dem Vor- und Nachname übereinstimmen...
Dazu verwende ich die ExecuteScalar Methode, die beim ersten auffinden die Funktion beendet und (so denke ich) eine 1 als Ergebnis liefert, andernfalls 0.
SQL String:
objrs.CommandText = "SELECT [vname],[nname] FROM [bpb].[dbo].[bpb_user] WHERE [vname] = '" & mail & "' AND [nname] = '" & pass & "'"
objrs.Connection = connect
adapter.SelectCommand = objrs
adapter.SelectCommand.Connection.Open()
erg = objrs.ExecuteScalar
If erg > 0 Then
ausgabe = "Eintrag gefunden...<br />"
End If
Das Script wird tadellos ausgeführt solange die Bedingungen nicht zutreffen.. findet er aber einen Eintrag kommt folgende Fehlermeldung:
Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: Input string was not in a correct format.
Kann mir jemand einen Tipp geben??
Danke und Gruß, Nicky |
|
|
|
 |
Unix-Tom
Moderator
Benutzerprofil
Anmeldungsdatum: 18.07.2000
Beiträge: 10411
|
Unix-Tom Moderator
07:20:57 30.04.2012 Titel: |
|
Zitieren |
http://msdn.microsoft.com ....... .sqlcommand.executescalar(v=vs.80).aspx
Wer lesen kann ist klar im Vorteil.
Select Vorname, Nachname .....
Sind 2 Werte.
Es kommt nur ein Wert zurück.
erg ist Hoffentlich dann auch ein String denn die Rückgabe wäre in einen String zu konvertieren. |
_________________ Moderator für MFC, Linux, C# - NET und Datenbanken
|
|
 |
supernicky
Mitglied
Benutzerprofil
Anmeldungsdatum: 06.11.2011
Beiträge: 122
|
supernicky Mitglied
18:19:19 30.04.2012 Titel: |
Lösung... |
Zitieren |
Hallo Tom,
gelesen habe ich... wohl nur falsch interpretiert...
Die Methode ExecuteScalar() gibt den ersten gefundenen Eintrag als String() zurück... Ich habe das etwas mit ExecuteNonQuery() verwechselt. Diese gibt die Anzahl der Änderungen zurück (Integer), aber leider nicht für Lesezugriffe, nur bei Insert und Update.
Ich prüfe nun die Länge von erg auf größer 0, dann weiß ich das ein Eintrag existiert.
Nun läuft aber alles :)
Gruß, Nicky |
|
|
|
 |
geeky
Mitglied
Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 6186
|
geeky Mitglied
20:31:41 02.05.2012 Titel: |
|
Zitieren |
wenn dich die Spalten sowieso nicht interessieren, und du nur die Anzahl der Zeilen brauchst: Warum nicht COUNT() im sql-query + ExecuteScalar() ? |
|
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|