[Résolu][Débutant C#] - Requete SQL

- Requete SQL [Résolu][Débutant C#] - C#/.NET managed - Programmation

Marsh Posté le 10-05-2007 à 10:42:19    

Bonjour,  
 
mon problème est le suivant :
je réalise un formualire en asp.net et c#.
j'utilise un <form id="Form1" method="post" runat="server">
J'ai un bouton pour "publier" les données saisies dans le formulaire avec une action dans le code behind.
 
Le hic cest que je n'arrive a trouver ce que je dois écrire et ou je dois l'écrire le code pour changer la valeur de la variable action du form, car celle ci reste tjrs la meme.  
J'ai essayer avec :
<form id="Form1" method="post" runat="server" action="tutu.aspx">
mais dans le code html généré le paramètre action reste "tata.aspx" qui est le nom de ma première page.
 
j'espere que je me suis fais comprendre.
 
merci d'avance


Message édité par littlegunnm le 16-05-2007 à 10:55:33
Reply

Marsh Posté le 10-05-2007 à 10:42:19   

Reply

Marsh Posté le 10-05-2007 à 14:42:18    

personne :'(

Reply

Marsh Posté le 11-05-2007 à 09:58:01    

bon bah tant pis :(
 
je tente une deuxieme question ;)  
 
Donc la c est pour une requete SQL  :  
 

Code :
  1. Mes variables :
  2. monSi =Convert.ToInt16(DeroulantProjet.SelectedValue);
  3. monType =Convert.ToInt16(DeroulantType.SelectedValue);
  4. mes variables sont bien du type Int
  5. MA requete :
  6. versionDoc=DAO.ExecuteDataset(ConnDB.UseConnection("Ma_Base" ),CommandType.Text,"SELECT id_doc_publication, titre_doc_publication, description_doc_publication, version_doc_publication FROM Doc_publication
  7. WHERE (id_si=monSi AND Type_doc_publication_id_type_doc_publication=monType)
  8. ORDER BY version_doc_publication DESC" );


 
la requete fonctionne avec entier fixés (exemple 1, 2, ...)
Mais elle n'a pas réussi avec les variables...je n' ai trouver la bonne synthaxe sur google pour un SELECT avec un WHERE utilisant des variables, si quelqu'un a une proposition ;)
 
merci d'avance


Message édité par littlegunnm le 11-05-2007 à 10:06:11
Reply

Marsh Posté le 11-05-2007 à 22:10:17    

Premiere question :
l'asp .NET fonctionne sur le principe du postback (le webform est posté sur lui meme, ce qui permet de capter des evenements et coder les comportement à adopter dans le code behind).
 
Le formulaire dont tu parles est celui du webform (propre à la page aspx). Tu ne peux pas modifier son action car il est runat="server".
 
Pour poster un formulaire "classique" crée une balise form sans l'attribut runat="server".
 
En asp, pour passer des paramètres à une autre page, en général on les passent par l'adresse (si les données ne sont pas sensibles) ou par session. Tu peux crée un formulaire classique pour passer des données en post mais l'interet est limité dans ce contexte.
 
Deuxieme question :
 

Code :
  1. "SELECT id_doc_publication, titre_doc_publication, description_doc_publication, version_doc_publication FROM Doc_publication WHERE
  2. (id_si= " + monSi + " AND Type_doc_publication_id_type_doc_publication= " + monType + " )ORDER BY version_doc_publication DESC"


Message édité par vlad' le 11-05-2007 à 22:12:19

---------------
Mon feedback
Reply

Marsh Posté le 13-05-2007 à 20:43:20    

pas génial ta solution pour sa requête SQL.
Il doit absolument passer par des objets tel que SQLParameter, OracleParameter, OleDbParamter, etc...
 
Sinon, bonjour l'intrusion SQL...  
 
La bonne méthode, c'est passer par ce genre d'objet, certe ta méthode fonctionne, mais elle n'est pas propre.

Message cité 1 fois
Message édité par moi23372 le 13-05-2007 à 20:43:48
Reply

Marsh Posté le 13-05-2007 à 23:15:15    

moi23372 a écrit :

pas génial ta solution pour sa requête SQL.
Il doit absolument passer par des objets tel que SQLParameter, OracleParameter, OleDbParamter, etc...
 
Sinon, bonjour l'intrusion SQL...  
 
La bonne méthode, c'est passer par ce genre d'objet, certe ta méthode fonctionne, mais elle n'est pas propre.


 
J'ai opté pour corriger son code (concaténation d'une chaine avec une variable).
 
Et détrompe toi, on ne doit pas "absolument passer par des objets tel que SQLParameter..."
Il y eu une vie avec les objets Parameter...
 
L'interet des paramètres pour une requète aussi basique est négligeable (n'apporte ni lisibilité, ni fonctionnalité, seulement du travail en plus pour soit meme et la machine).
 
L'argument comme quoi l'utilisation de parametres protègent de l'injection de code SQl est certe vrai mais n'est pas suffisant.
Il suffit de faire attention a "protégé" (double-quoté) le contenu des variables de type String systématiquement.
Dans son cas les variables sont des int (String converti en int), l'injection est donc impossible.


Message édité par vlad' le 13-05-2007 à 23:21:07

---------------
Mon feedback
Reply

Marsh Posté le 16-05-2007 à 10:53:08    

Merci désolé j'etais pas revenue voir :p
Merci pour la solution pour le lien
 
Pour la question sur la requete c est ce que j'avais trouvé ;)
 
Merci encore


Message édité par littlegunnm le 16-05-2007 à 10:55:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed