i`m faireQuelqu'un peut-il m'aider pour la syntaxe de la requête de sélection?
string sql = "select * from publisher where title like "'"+tbproperty.text+";
mais il s `ne fonctionne pas!
.. ce qui a trait
i`m faireQuelqu'un peut-il m'aider pour la syntaxe de la requête de sélection?
string sql = "select * from publisher where title like "'"+tbproperty.text+";
mais il s `ne fonctionne pas!
.. ce qui a trait
Correction ..
string sql = "select * from publisher where title like '" + tbproperty.text + "'";
hey écoute .. j'ai ma fonction dans ma classe mais le tbproperty ne montre pas dans ma classe .. ?? Comment fait-on ça ?? – Azka
Veuillez mettre votre code ici, afin que nous puissions analyser et vérifier. –
@Azka - vous seul savez où 'tbproperty' existe; Si vous faites votre accès aux données séparé de l'interface utilisateur (ce que vous devriez faire), vous devrez passer le titre désiré en tant que paramètre à votre méthode. –
Utilisation SqlParameter
:
SqlCommand cmd = new SqlCommand("select * from publisher where title like @title");
cmd.Parameters.AddWithValue("@title", tbProperty.Text);
Si vous devez ajouter au paramètre, puis procédez comme suit (Ex: paramètre de sortie):
SqlParameter param = new SqlParameter("@param ", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(param);
Cela signifie que vous n'avez pas besoin de construire la chaîne en soi et arrête l'injection SQL.
+1 souhaite que je pourrais + 10000 votre réponse !! Toujours toujours toujours (et aucune exception) utiliser des requêtes paramétrées. –
Avec LIKE
, si vous vous attendez commencer/fin matchs dont vous avez besoin des jokers tels que '%'
, et je suis en supposant que l'utilisateur n'ajoute pas ceux; mais - important: don't concatenate user input. Déjà; vous voulez quelque chose comme:
sql = "select * from publisher where title like @arg";
Avec @arg
défini comme un paramètre, avec une valeur quelque chose comme:
cmd.Parameters.AddWithValue("@arg", "%" + tbproperty.text + "%");
Que se passe - comment peut-il échouer? – Mark
Pour info, il vous manque une citation finale après le littéral, mais comme la plupart des réponses et des commentaires vous le disent; ** utiliser un paramètre **. –