crazyd
Goto Top

SQL Eintrag auf Existenz abfragen

Hallo zusammen,

Ich möchte überprüfen ob in einer Spalte ein bestimmter Eintrag vorhanden ist.
Bisher sind alle meine versuche mit der "EXISTS" Funktion gescheitert.

Vielen Dank im vorraus für eure Antworten!

MfG
CrazyD

Content-ID: 139939

Url: https://administrator.de/contentid/139939

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

lobotomie
lobotomie 06.04.2010 um 14:51:16 Uhr
Goto Top
An und für sich wird für EXISTS (subquery) ein boolescher Wert für die Existenz von Resultaten aus der subquery zurückgegeben.

loco Lobo
CrazyD
CrazyD 06.04.2010 um 14:56:41 Uhr
Goto Top
Ich programmiere diese Datenbank über Visual C# und kann diesen Wert beim debuggen leider nirgendwo finden.
Bzw weiß ich nicht wie ich abfragen kann face-sad
Biber
Biber 06.04.2010 um 14:59:13 Uhr
Goto Top
Moin KratziD,

willkommen im Forum.

Rückfragen:
a) heißt deine Datenbank mySQL oder DB2 oder Access oder Krups 3-Mix oder weiss es niemand genau?
b) Welche ganzen Versuche sind gescheitert und mit welcher Fehlermeldung?
c) hast du auch heute das Gefühl, es fühlt sich wie ein gatesverdammter Montach an?

Grüße
Biber
lobotomie
lobotomie 06.04.2010 um 15:07:52 Uhr
Goto Top
Es gibt verschiedene Möglichkeiten zu überprüfen, ob eine Spalte in einer Tabelle einen bestimmten Wert enthält.
Die einfachste, meistbenutzte und effizienteste ist sicherlich die Where Klausel in SQL, also

SELECT * FROM Tabelle WHERE wert = beispielwert
CrazyD
CrazyD 06.04.2010 um 15:09:44 Uhr
Goto Top
a) mysql

b) in der Form1.cs: (im try, catch Block)
sqlcom.Select("ID", BarcodeId);
sqlcom.cmd.ExecuteNonQuery();

in der sqlcom.cs:
cmd = new SqlCommand("SELECT " + Spalte + " FROM mysql_DB1 WHERE EXISTS (SELECT "+ Spalte +" FROM mysql_DB1 WHERE " + Spalte + " = " + Zeile + ")", conn);

Fehlermeldung kommt keine.

c) ja


Mein Programm läuft einfach weiter, egal ob der Eintrag vorhanden ist oder nicht.
Wenn der Eintrag nicht vorhanden ist, soll das Prog eine dem enstprechende Meldung bringen.
Dani
Dani 06.04.2010 um 15:21:01 Uhr
Goto Top
Zitat von @Biber:
c) hast du auch heute das Gefühl, es fühlt sich wie ein gatesverdammter Montach an?
Jaaaaaaaaaaaaaaaaaaaaaaaaaaa face-wink
SlainteMhath
SlainteMhath 06.04.2010 um 15:28:29 Uhr
Goto Top
Moin,

das:
sqlcom.cmd.ExecuteNonQuery();
ist schon mal ein grundliegender Fehler, da ein "NonQuery" per definition niemals etwas zurück gibt.


ansonsten würde ich das so abfragen:
SELECT COUNT(*) as c FROM mysql_DB1 WHERE " +Spalte+" ="+Zeile  
wenn c>0 dann existier die zeile.

lg,
Slainte
Xpl0iT
Xpl0iT 06.04.2010 um 15:31:43 Uhr
Goto Top
c) hast du auch heute das Gefühl, es fühlt sich wie ein gatesverdammter Montach an?

Wie muss man das jetzt verstehen? :D ... Warum gatesverdammt?
CrazyD
CrazyD 06.04.2010 um 15:31:46 Uhr
Goto Top
Was kann ich statt "NonQuery" nehmen? Hab da nicht viel Möglichkeiten.
SlainteMhath
SlainteMhath 06.04.2010 um 15:40:09 Uhr
Goto Top
Was kann ich statt "NonQuery" nehmen? Hab da nicht viel Möglichkeiten.
Für Einzelwerte i.d.R. ExecuteScalar oder sowas in der art. (Ich kenn weder C# noch die mySQL API von .NET) Musst Du mal in der Doku nachlesen face-smile

/edit: typos
CrazyD
CrazyD 06.04.2010 um 15:55:44 Uhr
Goto Top
Vielen Dank! Werd mich da mal dahinter klemmen.