Laden...

[gelöst] SQL nach Wortauschnitten durchsuchen

Erstellt von CarnifeX vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.399 Views
C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren
[gelöst] SQL nach Wortauschnitten durchsuchen

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");

H
523 Beiträge seit 2008
vor 8 Jahren

Da fehlen die Wildcards um den Suchbegriff: %mycsharp%

Siehe auch LIKE (Transact-SQL)

C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren

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!

2.298 Beiträge seit 2010
vor 8 Jahren

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));

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren

inflames2k vielen Dank für die Information! Ist mir noch gar nicht aufgefallen. 👍 😁 👍