Der String, der zur Initialisierung des SqlDataAdapters verwendet wird, wird zum Wert für die CommandText
-Eigenschaft innerhalb der SelectCommand-Eigenschaft des SqlDataAdapter.
Sie könnten Parameter zu diesem Befehl mit diesem Code hinzufügen
da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search",
_mssqlCon.connection);
da.SelectCommand.Parameters.AddWithValue("@search","%" + txtSearch.Text + "%");
- Erstens, entfernen Sie die einfachen Anführungszeichen um den Parameterplatzhalter.
- Zweitens, fügen Sie das Wildcard-Zeichen direkt zum Wertparameter von AddWithValue hinzu
Sie haben darum gebeten, AddWithValue zu verwenden, aber denken Sie daran, dass es zwar eine nützliche Abkürzung ist, aber auch zahlreiche Nachteile hat und alles gut dokumentiert ist.
Also, der gleiche Code ohne AddWithValue und unter Verwendung der Syntax der Objekt- und Kollektoren-Initialisierer könnte folgendermaßen geschrieben werden
da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search",
_mssqlCon.connection);
da.SelectCommand.Parameters.Add(new SqlParameter
{
ParameterName = "@search",
Value = "%" + txtSearch.Text + "%",
SqlDbType = SqlDbType.NVarChar,
Size = 2000 // Vorausgesetzt eine Größe von 2000 Zeichen für das Feld annotation (-1 für MAX)
});
und eine noch vereinfachte und einzeilige Version des Obigen ist:
da.SelectCommand.Parameters.Add("@search",SqlDbType.NVarChar,2000).Value = "%" + txtSearch.Text + "%";