Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] SQL nach Wortauschnitten durchsuchen
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

[gelöst] SQL nach Wortauschnitten durchsuchen

beantworten | zitieren | melden

Hey Leute,

ich brauch mal wieder euere Hilfe.
Und zwar habe ich eine SQL Datenbank mit 2 Spalten.
In der einen Spalte steht eine ID und in der anderen eine Domain.
Mein Ziel:
Ich möchte einen Teil der Domain eingeben (z.B. "mycsharp") (Kompletter Text in meiner Domain-Spalte lautet jedoch: "www.mycsharp.de")
Und anschließend die ID zurückbekommen.

Mein Problem:
Ich muss immer komplett "www.mycsharp.de" anstatt mycsharp oder einfach nur sharp eingeben.

Kann mir jemand weiterhelfen?

 Console.WriteLine("Geben Sie eine Domain ein nach der gesucht werden soll:");
            string eingabe = Console.ReadLine();

            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.Connection = new SqlConnection("Data Source=Server;Initial Catalog=test;Integrated Security=True;Connect Timeout=20");  // SQL Verbindungsstring
            sqlCommand.Connection.Open();

            sqlCommand.Parameters.Add("@DM", eingabe);
            sqlCommand.CommandText = "SELECT MedienId FROM Domain.List WHERE Domain LIKE @DM"; // SQL Query

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();  // Select ausführen

            while (sqlDataReader.Read()) // Lese solange Werte vorhanden sind
            {
                int variable = sqlDataReader.GetInt32(0); // Spalte 0 der Abfrage auslesen
                Console.WriteLine(sqlDataReader.GetInt32(0));
            }

            sqlCommand.Connection.Close();

            Console.WriteLine("\n\n");
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von CarnifeX am .
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 520
Herkunft: Münster

beantworten | zitieren | melden

Da fehlen die Wildcards um den Suchbegriff: %mycsharp%

Siehe auch LIKE (Transact-SQL)
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

OK danke hypersurf für die schnelle Antwort. Ich habe meinen Code jetzt dementsprechend angepasst. Jetzt wird mir aber gar kein Ergebnis mehr ausgegeben, nicht mal wenn ich die Domain komplett eingebe??


Korrigiere:
Funktioniert doch.


sqlCommand.Parameters.Add("@MID",'%' + eingabe + '%');

sqlCommand.Parameters.Add("@MID", '%' + eingabe + '%');


es hat nur dieser kleine Zusatz gefehlt " + '%' ".

Danke hypersurf!
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von CarnifeX am .
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2360

beantworten | zitieren | melden

Hallo,

wenn du das '%' nur am Ende hast, muss der Beginn der Zeichenkette stimmen.

Es gilt folgendes bei der Abfrage mit Like: Gegeben ist der Eintrag 'www.mycsharp.de'.

Definierst du jetzt den Parameter mit 'Wert + %' musst du 'www.mycsharp' eingeben, damit du die vollständige Url erhältst. Natürlich würde auch 'www.myc' reichen.

Möchtest du jedoch auch das 'www.' weg lassen, musst du auch vor dem Wert ein '%' anfügen.


sqlCommand.Parameters.Add("@MID", String.Format("%{0}%", eingabe));
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von inflames2k am .
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

inflames2k vielen Dank für die Information! Ist mir noch gar nicht aufgefallen.
private Nachricht | Beiträge des Benutzers