Comment utiliser des caractères génériques dans une requête SQL avec des paramètres

Dire que j'ai une requête de base, quelque chose comme ceci:

 SELECT holiday_name
 FROM holiday
 WHERE holiday_name LIKE %Hallow%

Cela exécute bien dans ma requête sql volet et renvoie 'Halloween'. Mon problème survient lorsque je tente d'utiliser des paramètres avec le caractère générique de caractères " % " dans mon code.

SqlConnection Connection = null;
SqlCommand Command = null;

string ConnectionString = ConfigurationManager.ConnectionStrings["SQLdb"].ConnectionString;
string CommandText = "SELECT holiday_name "
                   + "FROM holiday "
                   + "WHERE holiday_name LIKE %@name%";
Connection = new SqlConnection(ConnectionString);

try
{
      Connection.Open();
      Command = new SqlCommand(CommandText, Connection);
      Command.Parameters.Add(new SqlParameter("name", HolidayTextBox.Text));
      var results = Command.ExecuteScalar();
}

catch (Exception ex)
{   
     //error stuff here       
}

finally
{
    Command.Dispose();
    Connection.Close();
}

Cela déclenche une syntaxe incorrecte erreur. J'ai essayé de déplacer le '%' pour mon paramètre comme

Command.Parameters.Add(new SqlParameter("%name%", HolidayTextBox.Text));

mais ensuite j'ai un message d'erreur disant que je n'ai pas déclaré la variable scalaire '@name". Alors, comment voulez-vous formater correctement les caractères génériques pour être inclus avec les paramètres de la requête? Toute aide est appréciée!

source d'informationauteur ovaltein