begin process at 2008 07 20 15:48:20
1 213 292 membres
207 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : problème de recuperation de la clé primaire et de conversion . [ Base de données / ADO.NET ] (sancho07)

problème de recuperation de la clé primaire et de conversion . le 15/04/2008 10:45:20

sancho07
DataColumn dcmag = dsMag.Tables["magasin"].Columns["magasin_id"];
                dsMag.Tables["magasin"].Constraints.Add("PRIMARY", dcmag, true);
                int rowindex = dataGridViewMagasin.CurrentRow.Index;

                DataRow drmag = dsMag.Tables["magasin"].Rows.Find(dataGridViewMagasin[0,rowindex]); (ici j'ai une erreur de conversion )
                drmag.Delete();

voici le message d'erreur suite a la ligne en bleue :
L'exception System.InvalidCastException n'a pas été gérée
  Message="Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.DataGridViewTextBoxCell' en type 'System.IConvertible'."

 
j'espere que vous aller pouvoir m'aider, merci d'avance.

cordialement

Pierre-Alexandre

-----------------

Technicien Informatique

Développeur Informatique


Re : problème de recuperation de la clé primaire et de conversion . le 17/04/2008 00:13:49

olibara
Salut,
Tu as essayé :

dataGridViewMagasin[0,rowindex].ToString()

??

Re : problème de recuperation de la clé primaire et de conversion . le 17/04/2008 00:13:50

olibara
Salut,
Tu as essayé :

dataGridViewMagasin[0,rowindex].ToString()

??

Re : problème de recuperation de la clé primaire et de conversion . le 17/04/2008 08:45:33

sancho07
Réponse acceptée !
j'ai tout modifié mon code en mettant directement la requete comme ci-dessous :

string requete = "DELETE FROM magasin WHERE magasin_id=" + dataGridViewMagasin.Rows[rowindex].Cells[0].Value + " ";
                macommande = new MySqlCommand(requete, FormLogin.maconnection);
                macommande.ExecuteNonQuery();


et cela fonctionne .

Pierre-Alexandre

-----------------

Technicien Informatique

Développeur Informatique


Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 17:18:57

coq
(Admin CS)
Salut,

Sinon les requêtes paramétrées c'est cool, histoire de minimiser les risques d'injection SQL.



/*
coq
MVP Visual C#
CoqBlog
*/

Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 17:58:56

olibara

Salut coq

Et bien justement, je viens de me taper une requete "a la main" car je n'ai pas encore bien saisi le cheminement d'une requete parametrée qui me semble vu certains exemples encore plus complexe que la requete "a la main"


        string xCmd = "INSERT INTO ritstat (orde,date,time,addrID,Scan_Num,capaciteit,vol,Gewicht,dag,chauffeur) "
                    +" VALUES ("
                    + dr["Order1"].ToString()
                    +"," +dr["Datum"].ToString()
                    +",'" + dr["Uur"].ToString()+"'"
                    +"," + addrID
                    +"," + ScanNum
                    +"," + capa
                    +"," + vol
                    +"," + dr["Gewicht"].ToString()
                    +"," + dr["dag"].ToString()
                    +",'"+dr["chauffeur"].ToString()+"')";

        MySqlCommand cmd = new MySqlCommand(xCmd, MyConn.conn);
        try
        {
          int nUpd = cmd.ExecuteNonQuery();
        }
        catch (MySqlException e)
        {
          StreamWriter sw = new StreamWriter(archievPath + "duplicate.txt", true);
          MessageBox.Show(e.Message);
          sw.WriteLine("{0}\tline {1}\t{2}", curFile,numRec, e.Message);
          sw.Close();
          continue;


Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 18:34:29

coq
(Admin CS)
Réponse acceptée !
De mémoire/direct dans la zone de saisie ça donnerais

string xCmd = "INSERT INTO ritstat (orde,date,time,addrID,Scan_Num,capaciteit,vol,Gewicht,dag,chauffeur) VALUES (?orde, ?date, ?time, ?addrID, ?Scan_Num, ?capaciteit, ?vol, ?Gewicht, ?dag, ?chauffeur)";
...
cmd.Parameters.AddWithValue("?orde", dr["Order1"].ToString());
...

Plus complexe ?
Moi je trouve ça plus lisible, donc plus maintenable, sans parler de l'aspect sécurité.


/*
coq
MVP Visual C#
CoqBlog
*/

Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 18:38:04

coq
(Admin CS)
Sans parler aussi du fait que du coup on peut laisser le provider se débrouiller avec les DateTime pour la paramètres date, time etc afin qu'ils soient formatés correctement pour le type des colonnes.



/*
coq
MVP Visual C#
CoqBlog
*/

Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 19:30:25

olibara

Merci Coq !

Allez ! tu m'encourage je vais essayer

Mais je crois aussi que suivant les languages, le ? peut etre un @ ou je ne sais quoi encore, je vais vérifier pour csharp

 

 


Re : problème de recuperation de la clé primaire et de conversion . le 19/04/2008 19:36:45

coq
(Admin CS)
Ce n'est pas lié au langage client mais plus au provider/serveur SQL.
Il y a aussi des providers qui ne supportent pas les paramètres nommés, comme avec ODBC par exemple avec lequel on ne peut utiliser que les paramètres par position.


/*
coq
MVP Visual C#
CoqBlog
*/


Classé sous : system, conversion, tables, magasin, dsmag

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS