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-Key: 139939

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

Printed on: April 18, 2024 at 02:04 o'clock

Member: lobotomie
lobotomie Apr 06, 2010 at 12:51:16 (UTC)
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
Member: CrazyD
CrazyD Apr 06, 2010 at 12:56:41 (UTC)
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
Member: Biber
Biber Apr 06, 2010 at 12:59:13 (UTC)
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
Member: lobotomie
lobotomie Apr 06, 2010 at 13:07:52 (UTC)
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
Member: CrazyD
CrazyD Apr 06, 2010 at 13:09:44 (UTC)
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.
Member: Dani
Dani Apr 06, 2010 at 13:21:01 (UTC)
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
Member: SlainteMhath
SlainteMhath Apr 06, 2010 at 13:28:29 (UTC)
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
Member: Xpl0iT
Xpl0iT Apr 06, 2010 at 13:31:43 (UTC)
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?
Member: CrazyD
CrazyD Apr 06, 2010 at 13:31:46 (UTC)
Goto Top
Was kann ich statt "NonQuery" nehmen? Hab da nicht viel Möglichkeiten.
Member: SlainteMhath
SlainteMhath Apr 06, 2010 at 13:40:09 (UTC)
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
Member: CrazyD
CrazyD Apr 06, 2010 at 13:55:44 (UTC)
Goto Top
Vielen Dank! Werd mich da mal dahinter klemmen.