begin process at 2012 05 27 22:13:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

Access

 > 

Exception database


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exception database

jeudi 9 juin 2011 à 04:27:21 | Exception database

sawass

Bonjour,
je suis planter dans le mème problème..j'ai une erreur quand je veux modifier un utilisateur dans la base de donnés.Une erreur dans cette ligne:
cmd1.ExecuteNonQuery();
l"exception est longue est à peut prét la suivante:
System.Data.Odbc.OdbcException (0x80131937): ERROR [07002] [Microsoft][Pilote ODBC Microsoft Access]Champ COUNT incorrect.
Voici mon code:
Code C# :
 private void bt_valider_Click(object sender, System.EventArgs e)
        {
            OdbcConnection cn = new OdbcConnection("DSN=cp3");
            
            try
            {
                cn.Open();
            }
            catch
            {
                MessageBox.Show("Failed to connect to data source");
            }
            finally
            {
                OdbcCommand comm;

                comm = new OdbcCommand("select * from utilisateur where login=?", cn);
                objParameter = comm.Parameters.AddWithValue("login", old_login.Text);
               // comm = new OdbcCommand("select * from utilisateur where login='@L'I", cn);
               // comm.Parameters.Add("@LI", old_login.Text);
                OdbcDataReader rs;
                try
                {
                    rs = comm.ExecuteReader();
                    if (rs.Read())
                    {
                        if (rs.GetString(1) == old_pass.Text)
                        {
                            rs.Close();
                            OdbcParameter objParameter2 = new OdbcParameter();
                            OdbcCommand cmd1 = new OdbcCommand("update utilisateur set login=?,mot_de_passe=?,niveau=?, where login=?", cn);
                          objParameter2=  cmd1.Parameters.AddWithValue("login", new_login.Text);

                          objParameter2 = cmd1.Parameters.AddWithValue("mot_de_passe", new_pass.Text);

                            if (new_type.SelectedItem.ToString() == "")
                                objParameter2 = cmd1.Parameters.AddWithValue("type", "u");

                            if (new_type.SelectedItem.ToString() == "Administrateur")

                                objParameter2 = cmd1.Parameters.AddWithValue("type", "a");
                           if (new_type.SelectedItem.ToString() == "utilisateur")

                                objParameter2 = cmd1.Parameters.AddWithValue("type", "u");

                           objParameter2 = cmd1.Parameters.AddWithValue("", old_login.Text);
                         

                            cmd1.ExecuteNonQuery();

                            MessageBox.Show(this, "Invalid login or password  ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            old_login.Text = "";
                            old_pass.Text = "";
                            new_login.Text = "";
                            new_pass.Text = "";

                        }
                        else
                            MessageBox.Show(this, "Invalid login or password ", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                        MessageBox.Show(this, "User does not exist ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                catch (Exception eo)
                {
                    MessageBox.Show(this, "Error System", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    old_login.Text = eo.ToString();

                }

            }
            cn.Close();
        }


j'ai besoin d'aide et c'est important pour moi.
jeudi 9 juin 2011 à 09:45:07 | Re : Exception database

jopop

Salut,

je pense pas que ça va tout régler mais déjà y'a un souci dans la requête d'update : tu as une virgule en trop après niveau=?.
jeudi 9 juin 2011 à 12:04:29 | Re : Exception database

sawass

Bonjour,
ça n'a rien changer.Toujours la mème erreur.
jeudi 9 juin 2011 à 13:27:05 | Re : Exception database

jopop

Pourrais-tu faire suivre l'exception dans sa totalité, voire avec la pile d'appels STP ?
jeudi 9 juin 2011 à 13:42:04 | Re : Exception database

sawass

la plile s'arrete dans cette ligne:
cmd1.ExecuteNonQuery();
Apparement il n'exéute pas la requète je ne sais pas pourquoi
jeudi 9 juin 2011 à 14:14:08 | Re : Exception database

jopop

L'exception complète STP
Et quand on regarde de plus près on voit que tu fais des trucs bizarres avec tes paramètres.
Pourquoi assigner une variable objParameter2 à chaque fois ?
Pourquoi ton dernier paramètre n'est pas nommé ?
jeudi 9 juin 2011 à 14:24:25 | Re : Exception database

sawass

Voila une autre version et j'ai la mème erreur:
Code C# :
 private void bt_valider_Click(object sender, System.EventArgs e)
        {
            OdbcConnection cn = new OdbcConnection("DSN=cp22");
            int rs1;
            try
            {
                cn.Open();
            }
            catch
            {
                MessageBox.Show("Failed to connect to data source");
            }
            finally
            {
                OdbcCommand comm;

                comm = new OdbcCommand("select * from utilisateur where login=?", cn);
                comm.Parameters.Add("login", login.Text);
                OdbcDataReader rs;
                try
                {
                    rs = comm.ExecuteReader();
                    if (rs.Read())
                    {
                        if (rs.GetString(1) == pass.Text)
                        {
                            rs.Close();
                            OdbcCommand cmd1 = new OdbcCommand("update utilisateur set login=?,mot_de_passe=? where login=?", cn);
                           // DataSet Set = new DataSet();
                            cmd1.Parameters.Add("login", login_new.Text);
                            cmd1.Parameters.Add("mot_de_passe", pass_new.Text);
                           // if (type_new.SelectedItem.ToString().CompareTo("utilisateur"))
                               // cmd1.Parameters.Add("type", "u");
                            //String s =(type_new.GetSelected()).ToString();
                           // if (s.CompareTo("Administrateur")==1)
                               // cmd1.Parameters.Add("type", "a");
                           // else
                               // cmd1.Parameters.Add("type", "u");

                           // cmd1.Parameters.Add(" ", login.Text);

                            rs1 = cmd1.ExecuteNonQuery();
                            MessageBox.Show(this, "Utilisateur Modifié  ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            login.Text = "";
                            pass.Text = "";
                            login_new.Text = "";
                            pass_new.Text = "";


                           
                          
                        }
                        else
                            MessageBox.Show(this, "Ancien mot de passe invalid  ", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                        MessageBox.Show(this, "Utilisateur inexistant  ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                catch (Exception eo)
                {
                    MessageBox.Show(this, "Error System", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    login.Text = eo.ToString();

                }

            }
            cn.Close();
        }



L'excepton est la suivante;
System.Data.Odbc.OdbcException (0x80131937): ERROR [07002] [Microsoft][Pilote ODBC Microsoft Access]Champ COUNT incorrect
Et merci pour votre aide.
jeudi 9 juin 2011 à 14:57:50 | Re : Exception database

jopop

Je vois pas de champ COUNT dans ta requête ...
Toutefois il est normal que cette nouvelle version ne marche pas plus : ta requête attend 3 paramètres et tu lui en donnes que 2 (il manque le deuxième login pour la clause where).
Essaie, toujours avec cette deuxième version, de mettre ces paramètres :
Code C# :
cmd1.Parameters.Add("login", login_new.Text);
cmd1.Parameters.Add("mot_de_passe", pass_new.Text);
cmd1.Parameters.Add("login", old_login.Text);


Je sais pas s'il va aimé d'avoir 2 paramètres du même nom, mais il me semble qu'avec Access cela fonctionne comac (et c'est d'ailleurs pour ça qu'il faut ajouter les param dans l'ordre). A tenter quoi.

A noter également que je n'ai pas l'habitude de faire mes requêtes paramétrées ainsi. Travaillant avec Oracle ou MySQL on a des paramètres strictement nommés (genre : "SELECT * FROM T1 WHERE C1 = @c1")
jeudi 9 juin 2011 à 16:03:11 | Re : Exception database

sawass

Merci beaucoup jopop pour votre aide.C'est grâce à toi mon problème est résolu:Il a accépté 2 paramètres de mème nom merci une autre fois.


Cette discussion est classée dans : text, login, cmd1, parameters, addwithvalue


Répondre à ce message

Sujets en rapport avec ce message

Exception [ par sawass ] Lorsque j'exécute ce code j'ai l'exeption suivante: "System.NullReferenceException: Object reference not set to an instance of an object" Voici le cod récupérer login et password pour l afficher dans Page Master [ par Sabine25 ] Bonjour,aujourd hui j ai un problème d affichage de login et user dans mon Master Page après récupération!Dans ma premiere classe qui me sert à me con Erreur lors d'un INSERT INTO [ par WineFun ] Bonjour, j'ai cette erreur quand je fais un nouvel ah=jouts dans ma base de donnée, via mon site en aspx. La référence d'objet n'est pas d Update BD [ par Nightcourrier ] Bonjours à tousbonjours à tous,Je commence en asp et je ne comprend pas pk cela ne fonctionne pas ...------------------------------------------------- probleme insertion avec clé primaire autoincrementé [ par atino ] Bonjour,j'ai un formulaire pour demander un devis ,dans une table devis ,j'ai plusieurs colonnes (numdevis, nom, adresse, ville, telephone, mail, comm Erreur ASP.net (VB) DataTable.Rows.count renvoie 0 avec SQLServer [ par Namson ] Bonjour à tous...Je suis vraiment bloqué sur un problème que je sais vraiment facile...OK je code sous Asp.net ( VB) et j'ai l'habitude de travailler Mozilla et projet aspx [ par aurelie ] Voilà, j'ai réalisé une application aspx avec visual studio .net qui marche parfaitement avec Internet Explorer, mais lorsque je le teste sous Mozilla LOGIN.ASPX [ par LOUTTY ] Je ne comprends pas pourquoi ca ne fonctionne pas en fait il refuse systématiquement de m'authentifier meme avec le bon mot de passelogin.aspx<%@ Impo probleme de "Fill" dans un form d'authetification. [ par drjey ] Salut je tente de faire un form d'authentification et voila l'erreur que je recois: Exception Details: System.Invalid probleme de IF [ par drjey ] Salut, voila mon probleme:mon row.login est bien egal a textbox1.text et row.password est bien egal a textbox2.text (je les affiche separement dans de


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales