OVH Cloud OVH Cloud

^Problème de requête paramétrée et mot-clé USE

4 réponses
Avatar
LEBRUN Thomas
Bonsoir :)

Voila, je dispose de ce bout de code utilisant une requête paramétrée :

// Utilisation d'une requête paramétrée : améliore la sécurité (évite les
injections SQL, etc..), gain de temps, etc...
SQLCommande2.CommandText = "USE @base_de_donnees";

// Paramètre de la requête : nom de la base de données
SQLCommande2.Parameters.Add(new SqlParameter("@base_de_donnees",
SqlDbType.Text));
// C'est un paramètre entré
SQLCommande2.Parameters["@base_de_donnees"].Direction =
ParameterDirection.Input;
// Sa valeur = valeur de l'item dans la comboBox
SQLCommande2.Parameters["@base_de_donnees"].Value =
cbListBDD.SelectedItem.ToString();

// Execution de la requête
SQLCommande2.ExecuteNonQuery();


Le problème, c'est que cela ne fonctionne pas : il lève une exception sur
cette ligne :

SQLCommande2.CommandText = "USE @base_de_donnees";


en spécifiant :

Syntaxe incorrecte près de @base_de_donnees


Auriez-vous une idée ?

Merci et @ +

--
LEBRUN Thomas
http://morpheus.developpez.com

4 réponses

Avatar
Bismark Prods
Il semble que l'utilisation de "USE" ne soit pas syntaxiquement correct... !
En cherchant sur le net, j'ai trouvé que 3 documents qui traitent de
l'utilisation de cette commande. Ou as-tu trouvé cette commande ??


"LEBRUN Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de
news:
Bonsoir :)

Voila, je dispose de ce bout de code utilisant une requête paramétrée :

// Utilisation d'une requête paramétrée : améliore la sécurité (évite les
injections SQL, etc..), gain de temps, etc...
SQLCommande2.CommandText = "USE @base_de_donnees";

// Paramètre de la requête : nom de la base de données
SQLCommande2.Parameters.Add(new SqlParameter("@base_de_donnees",
SqlDbType.Text));
// C'est un paramètre entré
SQLCommande2.Parameters["@base_de_donnees"].Direction > ParameterDirection.Input;
// Sa valeur = valeur de l'item dans la comboBox
SQLCommande2.Parameters["@base_de_donnees"].Value > cbListBDD.SelectedItem.ToString();

// Execution de la requête
SQLCommande2.ExecuteNonQuery();


Le problème, c'est que cela ne fonctionne pas : il lève une exception sur
cette ligne :

SQLCommande2.CommandText = "USE @base_de_donnees";


en spécifiant :

Syntaxe incorrecte près de @base_de_donnees


Auriez-vous une idée ?

Merci et @ +

--
LEBRUN Thomas
http://morpheus.developpez.com


Avatar
LEBRUN Thomas
> Ou as-tu trouvé cette commande ??


Dans n'importe quel bouquin de SQL, ou bien même dans les script généré par
SQL server.

USE nom_base

sert à sélectionner une base de données pour pouvoir travailler avec....
La syntaxe est correcte puisqu'elle fonctionne dans l'analyseur de requête
de SQL serveur.

Une idée ?

A+ et merci

-------------------
LEBRUN Thomas
http://morpheus.developpez.com


"Bismark Prods" wrote:

Il semble que l'utilisation de "USE" ne soit pas syntaxiquement correct... !
En cherchant sur le net, j'ai trouvé que 3 documents qui traitent de
l'utilisation de cette commande. Ou as-tu trouvé cette commande ??


"LEBRUN Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de
news:
> Bonsoir :)
>
> Voila, je dispose de ce bout de code utilisant une requête paramétrée :
>
> // Utilisation d'une requête paramétrée : améliore la sécurité (évite les
> injections SQL, etc..), gain de temps, etc...
> SQLCommande2.CommandText = "USE @base_de_donnees";
>
> // Paramètre de la requête : nom de la base de données
> SQLCommande2.Parameters.Add(new SqlParameter("@base_de_donnees",
> SqlDbType.Text));
> // C'est un paramètre entré
> SQLCommande2.Parameters["@base_de_donnees"].Direction > > ParameterDirection.Input;
> // Sa valeur = valeur de l'item dans la comboBox
> SQLCommande2.Parameters["@base_de_donnees"].Value > > cbListBDD.SelectedItem.ToString();
>
> // Execution de la requête
> SQLCommande2.ExecuteNonQuery();
>
>
> Le problème, c'est que cela ne fonctionne pas : il lève une exception sur
> cette ligne :
>
> SQLCommande2.CommandText = "USE @base_de_donnees";
>
>
> en spécifiant :
>
> Syntaxe incorrecte près de @base_de_donnees
>
>
> Auriez-vous une idée ?
>
> Merci et @ +
>
> --
> LEBRUN Thomas
> http://morpheus.developpez.com





Avatar
sebastien981_nospam
Bonjour,

utilise ça

sqlcommand Command=new sqlcommande(...)

Command.Connection.ChangeDatabase(DataBaseName);


ce sera mieu que le use ChangeDatabase est la fonction prévue pour
exécuter ça ;)le use n'est pas reconnue comme commande par sqlcommande
je pense qu'il s'agit justement du filtrage de code sql pour les raison
de sécurité que tu énonce


Sebastien

LEBRUN Thomas avait énoncé :
Bonsoir :)

Voila, je dispose de ce bout de code utilisant une requête paramétrée :

// Utilisation d'une requête paramétrée : améliore la sécurité (évite
les injections SQL, etc..), gain de temps, etc...
SQLCommande2.CommandText = "USE @base_de_donnees";

// Paramètre de la requête : nom de la base de données
SQLCommande2.Parameters.Add(new SqlParameter("@base_de_donnees",
SqlDbType.Text));
// C'est un paramètre entré
SQLCommande2.Parameters["@base_de_donnees"].Direction =
ParameterDirection.Input;
// Sa valeur = valeur de l'item dans la comboBox
SQLCommande2.Parameters["@base_de_donnees"].Value =
cbListBDD.SelectedItem.ToString();

// Execution de la requête
SQLCommande2.ExecuteNonQuery();


Le problème, c'est que cela ne fonctionne pas : il lève une exception sur
cette ligne :

SQLCommande2.CommandText = "USE @base_de_donnees";


en spécifiant :

Syntaxe incorrecte près de @base_de_donnees


Auriez-vous une idée ?

Merci et @ +


Avatar
Bismark Prods
Donne moi 1 nom de bouquin ou il y a cette commande stp.

merci

Bismark

"LEBRUN Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de
news:
> Ou as-tu trouvé cette commande ??
Dans n'importe quel bouquin de SQL, ou bien même dans les script généré


par
SQL server.

USE nom_base

sert à sélectionner une base de données pour pouvoir travailler avec....
La syntaxe est correcte puisqu'elle fonctionne dans l'analyseur de requête
de SQL serveur.

Une idée ?

A+ et merci

-------------------
LEBRUN Thomas
http://morpheus.developpez.com


"Bismark Prods" wrote:

> Il semble que l'utilisation de "USE" ne soit pas syntaxiquement


correct... !
> En cherchant sur le net, j'ai trouvé que 3 documents qui traitent de
> l'utilisation de cette commande. Ou as-tu trouvé cette commande ??
>
>
> "LEBRUN Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message


de
> news:
> > Bonsoir :)
> >
> > Voila, je dispose de ce bout de code utilisant une requête paramétrée


:
> >
> > // Utilisation d'une requête paramétrée : améliore la sécurité (évite


les
> > injections SQL, etc..), gain de temps, etc...
> > SQLCommande2.CommandText = "USE @base_de_donnees";
> >
> > // Paramètre de la requête : nom de la base de données
> > SQLCommande2.Parameters.Add(new SqlParameter("@base_de_donnees",
> > SqlDbType.Text));
> > // C'est un paramètre entré
> > SQLCommande2.Parameters["@base_de_donnees"].Direction > > > ParameterDirection.Input;
> > // Sa valeur = valeur de l'item dans la comboBox
> > SQLCommande2.Parameters["@base_de_donnees"].Value > > > cbListBDD.SelectedItem.ToString();
> >
> > // Execution de la requête
> > SQLCommande2.ExecuteNonQuery();
> >
> >
> > Le problème, c'est que cela ne fonctionne pas : il lève une exception


sur
> > cette ligne :
> >
> > SQLCommande2.CommandText = "USE @base_de_donnees";
> >
> >
> > en spécifiant :
> >
> > Syntaxe incorrecte près de @base_de_donnees
> >
> >
> > Auriez-vous une idée ?
> >
> > Merci et @ +
> >
> > --
> > LEBRUN Thomas
> > http://morpheus.developpez.com
>
>
>