Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
1870 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  problème d'insertion

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème d'insertion

n°1913429
manar-info
Posté le 10-08-2009 à 13:48:05  profilanswer
 

bonjour,
j'espère que je poste dans le bon endroit sinon merci de m'orienter.
j'essaie depuis longtemps d'inserer mes donnée dans la bese de donnée mais je sais pas le problème où.S'il vous plais si quelq'un peut m'aider pour trouver la solution j'en serai reconnaissant.voila le code:
 
protected void Button1_Click(object sender, EventArgs e)
    {
        String str = "Data Source=ALI-131A155D61B\\SQLEXPRESS;Initial Catalog=BD_huawei;Integrated Security=True; Asynchronous Processing = true";
        SqlConnection conn = new SqlConnection(str);
        conn.Open();
        SqlCommand query = new SqlCommand("INSERT INTO user VALUES ('"+ textbox1.text +"')", conn);
        query.BeginExecuteNonQuery();
}

mood
Publicité
Posté le 10-08-2009 à 13:48:05  profilanswer
 

n°1913490
Fred82
Posté le 10-08-2009 à 15:20:19  profilanswer
 

BeginExecuteNonQuery() est une opération asynchrone, comme décrit dans la MSDN. Il faut donc que tu la termines par l'opération EndExecuteNonQuery().
 
Mais je présume que tu n'en as pas besoin du tout, et que tu souhaites faire cette opération de manière synchrone. Dans ce cas, utilises ExecuteNonQuery() au lieu de BeginExecuteNonQuery().


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1913575
manar-info
Posté le 10-08-2009 à 16:28:38  profilanswer
 

merci infiniment.

n°1913612
manar-info
Posté le 10-08-2009 à 17:09:55  profilanswer
 

SVP j'ai besoin de recuperer les donnée de ma base mais je sais pas comment;ce que je savais c est ultiliser un "reader" mais coment.
SVP si vous avez une idée merciiii.

n°1913614
Fred82
Posté le 10-08-2009 à 17:13:16  profilanswer
 

Il y a plein plein plein de possibilités et pas mal d'apprentissage à faire.
 
L'idée qui me vient en tête, si tu as VS2008, c'est d'utiliser LinqToSQL, qui n'est pas trop prise de tête à mon avis.


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1913620
manar-info
Posté le 10-08-2009 à 17:23:29  profilanswer
 

oui j'ai VS2008 mais si vous permettez j'ai pas compris votre idée

n°1913625
Fred82
Posté le 10-08-2009 à 17:37:06  profilanswer
 

Il te faudra lire des tutoriaux. En voici une liste :
http://how-to-web.fr/asp-net/linq- [...] nq-to-sql/
 
En gros, tu vas te retrouver avec un outil pour manipuler ta base de données : lecture/écriture. Le langage Linq va remplacer entièrement l'utilisation du SQL, et tu vas pouvoir manipuler tes données plus simplement.


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1913706
moi23372
Posté le 10-08-2009 à 20:19:18  profilanswer
 

plus simplement ça reste à confirmer. Personnellement je ne suis pas du tout convaincu. Aucun moyen de controler l'sql derrière.  
Alors tant que la DB est petite ça va, le jour ou il faudra optimiser les query parce que certaines tables feront plusieurs milliars d'enregistrements, avec Linq, bonjour la merde.  
 
A utiliser donc avec modérations. Rien en vaut la maitrise d'SQL.  
Je privilérérierais LinqTodataSet. Et charger le dataset avec les adapter. ça me parait plus édéquat.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1913707
Fred82
Posté le 10-08-2009 à 20:28:57  profilanswer
 

Si si on peut contrôler le SQL derrière. Je le fais, mais avec Entity Framework certes. J'ai un collègue qui est d'ailleurs à fond sur l'optimisation du code SQL généré.
 
Et niveau praticité, je trouve personnellement que c'est le pied. Le code est beaucoup plus concis, et encore plus avec les expressions lambda. Certains foreach pas trop complexes peuvent s'écrire en une ligne (je parle des expressions lambda), dans une écriture que je trouve assez naturelle.


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1913722
manar-info
Posté le 10-08-2009 à 21:30:40  profilanswer
 

SVP,j'ai encore besoin de votre aide,j'essaie de faire l'euthentification d'un utilisateur mais ca marche pas.je passe a l'autre page quelque soit le login et ke mot de passe.SVP si vous avez une aidée je suis preneur.
voici le code :
private bool Authentifier(string strUtilisateur, string strMotDePasse)
    {
        bool bOk = false;
        String str = "Data Source=ALI-131A155D61B\\SQLEXPRESS;Initial Catalog=BD_huawei;Integrated Security=True; Asynchronous Processing = true";
        // Cryptage du mot de passe
        strMotDePasse = FormsAuthentication.HashPasswordForStoringInConfigFile(strMotDePasse, "MD5" );
        // Création d'une connexion SGBD
        SqlConnection conn = new SqlConnection(str);
        // Définition de la requête à exécuter
        SqlCommand comm = new SqlCommand("SELECT * FROM log_admin WHERE nom='" + strUtilisateur + "'", conn);
        try
        {
            // Ouverture de la connexion et exécution de la requête
            conn.Open();
            SqlDataReader sdr = comm.ExecuteReader();
            // Parcours de la liste des utilisateurs
            while (sdr.Read())
            {
                if (sdr["motdepasse"].ToString() == strMotDePasse)
                {
                    Response.Redirect("Default.aspx" );
                    bOk = true; break;
                }
            }
        }
        catch
        {
            bOk = false;
        }
        conn.Close();
        return bOk;
    }
 
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Authentifier(TextBox1.Text,TextBox2.Text))
        {
            FormsAuthentication.RedirectFromLoginPage(TextBox2.Text, false);
        }
        else
        {
            this.Page.Controls.Add(new LiteralControl("<script type=\"text/javascript\">alert('erreur');</script>" ));
        }  
    }
merciiii.

n°1913727
Fred82
Posté le 10-08-2009 à 21:43:08  profilanswer
 

ok j'avoue, ta solution est beaucoup plus simple que la mienne question apprentissage :D
 
Et pour ton problème, fais comme tout le monde : débugge ! Utilise le débuggeur pas à pas, et tu verras ce qu'il te fait, que vaut les variables...
 
Déjà je vois un doublon : ça ne sert à rien de faire ça :
Response.Redirect("Default.aspx" );
et ça :
FormsAuthentication.RedirectFromLoginPage(TextBox2.Text, false);
Seule la seconde commande est utile, me semble-t-il. En tout cas les deux en même temps ne servent à rien.
 
Et puis ça ne sert à rien de boucler sur les résultats de ta requête puisque c'est censé renvoyer un seul enregistrement, non ?


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1913738
manar-info
Posté le 10-08-2009 à 21:52:44  profilanswer
 

j'ai fait le "Response.Redirect("Default.aspx" );" pour passer a une autre page lorsque la conexion est valide.sinon comment faire ça??
 
d'autre part la condition "if (Authentifier(TextBox1.Text,TextBox2.Text)) "
ne se verifie pas je sais pas la cause!!
si vous avez une idée.

n°1913837
Fred82
Posté le 11-08-2009 à 09:40:42  profilanswer
 

Il me semble que cette commande :
FormsAuthentication.RedirectFromLoginPage(TextBox2.Text, false);  
cette commande permet justement de faire la redirection vers la page qui a été demandée initialement.
Normalement, si tu utilises le composant FormsAuthentication, tu dois interdire dans le web.config toutes les pages sauf la page de login, et spécifier que tu fais une authentification asp. Ta page par défaut de ton site doit alors être Default.aspx dans ton cas. Quand l'utilisateur va alors se connecter sur ton site, il va demander la page Default.aspx, ce qui va le rediriger automatiquement sur la page de login. Si le login est ok, alors tu fais :
FormsAuthentication.RedirectFromLoginPage(TextBox2.Text, false); ce qui va faire deux choses : validation du login + redirection vers la page demandée.
Parce que sinon, si tu fais juste Response.Redirect("Default.aspx" );, ça va d'une part quitter le bloc de code en cours (et du coup effectivement ta condition ne sera pas vérifiée - bon je ne suis pas sûr sur ce point, à vérifier), et d'autre part rediriger vers Default.aspx, mais comme le login n'est alors pas validé, alors tu reviens sur la page de login normalement dans un système bien fait, ce qui pourrait expliquer le comportement actuel de ton programme.


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  problème d'insertion

 

Sujets relatifs
[mySQL] problème à l'insertion de polygoneProblème d'insertion en table
Problème de mise en page suite à l insertion d'un formulaireProblème d'insertion dans une table via une interface Visual C++
Problème d'insertion dans une table sous ACCESSProblème insertion de video youtube sur image.
Problème de requête d'insertion IIS/Access/ASP[javascript] Problème d'insertion dans un fichier .js
Problème d'insertion dans une table sous oracleProblème D'insertion dans SQL
Plus de sujets relatifs à : problème d'insertion


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware