IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème lors du Release


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 8
    Par défaut Problème lors du Release
    Bonjour à tous,

    Je dois avouez ne plus savoir ou chercher...Donc voici :

    J'ai monté un programme utilisant les outils de bases de MVSExpress C# 2010, soit :
    DataGrid, Dataset, Datatable, TextBox, Forms et.... c'est à peu près tout (pas de SQL, tout est fait avec du CSV - car lié avec un système qui utilise le csv.. )

    J'utilise actuellement le programme sur 3 ordinateurs. Ils ont tous Windows 7: 2 avec 64 bits, 1 avec 32 bits, et tout fonctionne correctement. Toutefois, j'ai essayé de mettre le programme (Le mode Release fait par MVSExpress C#) sur un 4e ordinateur utilisant W7 et 64-bit et... j'obtiens le message d'erreur suivant (Et ce, autant en mode Débug qu'en mode Release)

    Message :
    /////////////////

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index
    at System.Collections.ArrayList.get_Item(Int32 index)
    at System.Windows.Forms.DataGridViewRowCollection.SharedRow(Int32 rowIndex)
    at System.Windows.Forms.DataGridViewRowCollection.get_Item(Int32 index)
    at WindowsFormsApplication1.ModifDesInfos.InscrireLesModifs()
    at WindowsFormsApplication1.ModifDesInfos.BtnAccept_Click(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.237 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    Comptabilité
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Jonathan/Desktop/Tester/Comptabilit%E9.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.236 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.237 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

    ///////////////////////
    En mode débug, le problème semble provenir des TextBox... J'ai mis à jours le .NET Framework 4. Installé MVSExpress 2010 sur l'ordinateur en question en pensant que celui-ci pourrait installer le driver manquant (ou autre software...). J'ai fait les updates de windows...

    Bref, rien à faire je ne vois pas d'où viens le problème.

    Est-ce que quelqu'un part un heureux hasard saurait quoi faire??

    Merci à l'avance!!

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Hello,

    regarde bien le message qui t'es renvoyé. Il y a une erreur quelque part dans la méthode InscrireLesModifs.

    Tu peux montrer ce que fait cette méthode ? Visiblement, elle modifie la datagridview, en récupérant une ligne par un index qui est plus grand que le nombre de lignes.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le problème ne vient pas du changement de machine, même si c'est qui montre le soucis

    le problème est dans ton code, il faut des try catch, et coder correctement

    un bug de développement est parfois quelque chose qui se produit très rarement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 8
    Par défaut
    Bonjour,

    Merci de vos réponses rapides. Guulh Voici la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    private void InscrireLesModifs()
            {
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTrans"]            = lblTrans.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneDateCompt"]        = dtDateCompTrans.Text;
     
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneDateSaisi"]        = dtDateSaisi.Value.ToString().Remove(10);
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneDateModif"]        = dtDateModif.Value.ToString().Remove(10);
     
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCompteImpute"]     = cbCompteImpute.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCommentaire"]      = txtComment.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCQ"]               = txtNumCheque.Text;
     
                for (int i = 0; i < MainFrame.ColConciliation.Rows.Count; i++)
                {
                    if ( MainFrame.ColConciliation.Rows[i]["ColonneMois"].ToString() == cbConciliation.Text)
                        MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneConciliation"] =
                            MainFrame.ColConciliation.Rows[i]["ColonnePeriode"].ToString();
                }
                //Donne la couleur voulu
                if (cbCouleur.SelectedIndex == 0 || cbCouleur.SelectedIndex == 137)
                {
                    MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCouleur"]      = " "; // WHITE
                    if (Form_parent.dtGrTransactions.Rows.Count > 0)
                    {
                        Form_parent.dtGrTransactions.Rows[int.Parse(lblRangeActuelleDataGrid.Text)].DefaultCellStyle.BackColor = Color.White;
                    }
                }
                else
                {
                    MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCouleur"]             = cbCouleur.SelectedIndex;
                    if (Form_parent.dtGrTransactions.Rows.Count > 0)
                    {
                        Form_parent.dtGrTransactions.Rows[int.Parse(lblRangeActuelleDataGrid.Text)].DefaultCellStyle.BackColor = Color.FromName(cbCouleur.Text);
                    }
                }
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneImputableA"]       = cbDivisionImputable.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonnePayePar"]          = cbDivisionPayante.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneDebit"]            = txtDebitTrans.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneCredit"]           = txtCreditTrans.Text;
     
                //Gère la TPS
                if (TPSaPayer.Text != "")
                {
                    if (lblTPSaPayer.Text == "-")
                    {
                        MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTPSaPayer"] = lblTPSaPayer.Text + TPSaPayer.Text;
                    }
                    else
                    {
                        MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTPSaPayer"] = TPSaPayer.Text;
                    }
                }
                else
                {
                    MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTPSaPayer"] = "";
                }
     
                //Gère la TVQ
                if (TVQaPayer.Text != "")
                {
                    if (lblTVQaPayer.Text == "-")
                    {
                        MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTVQaPayer"] = lblTVQaPayer.Text + TVQaPayer.Text;
                    }
                    else
                    {
                        MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTVQaPayer"] = TVQaPayer.Text;
                    }
                }
                else
                {
                    MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneTVQaPayer"] = "";
                }
     
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneQxTPSTVQ"]         = txtQx.Text;
                MainFrame.dtTbTransactions.Rows[int.Parse(lblRangeActuelle.Text)]["ColonneDejaImpute"]       = txtDejaImpute.Text;
     
     
            }
    ET, voici la ligne qui saute si je roule en mode dé-bug (#34), ils me disent qu'un string ne peu pas être vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     private void ControleDesInformationsMonetaires(TextBox TextBoxAVerifier)
            {
                try
                {
                    if (TextBoxAVerifier.Text != "")
                    {
                        double test = double.Parse(TextBoxAVerifier.Text);
                    }
                }
                catch
                {
                    if (DerniereToucheFrapper == ",")
                    {
                        int nombre = 0;
                        for (int i = 0; i < TextBoxAVerifier.Text.Length; i++)
                        {
                            if (TextBoxAVerifier.Text[i].ToString() == ".")
                            {
                                nombre++;
                            }
                        }
     
                        if (nombre > 0)
                        {
                            TextBoxAVerifier.Text = TextBoxAVerifier.Text.Replace(DerniereToucheFrapper, "");
                        }
                        else
                        {
                            TextBoxAVerifier.Text = TextBoxAVerifier.Text.Replace(DerniereToucheFrapper, ".");
                        }
                    }
                    else
                    {
                        TextBoxAVerifier.Text = TextBoxAVerifier.Text.Replace(DerniereToucheFrapper, "");
                    }
                    TextBoxAVerifier.Text = TextBoxAVerifier.Text.Replace(DerniereToucheFrapper, "");
                    TextBoxAVerifier.SelectionStart = TextBoxAVerifier.Text.Length;
                    TextBoxAVerifier.ScrollToCaret();
                }
            }
    Dont derniereToucheFrapper provient de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void KeyPressControl(object sender, KeyPressEventArgs e)
            {
                DerniereToucheFrapper = e.KeyChar.ToString();
     
            }
    Pour d'autres informations sur la méthode :
    En bref, ce qu'elle fait, c'est prendre la transaction (ligne) dans le DataGrid du Form : Mainframe et remplis les boîtes de textes individuelles - un peu comme le ferait un detailsview (je l'ai fais ainsi car mes connaissances des contrôles du detailsview sont limités et j'ai ainsi des validations d'erreurs dynamique).

    ** Ce qui est étrange, c'est que le message d'erreur que j'ai mis précédement, ne se lance pas lorsque cette méthode est demandé dans le code. Le message d'erreur arrive lors de l'ouverture du Forms et non à l'appuie du bouton AccepterLesModifs (Bouton qui appelle cette méthode).

    Tel qu'indiqué précédement, le problème semble être lié aux TextBox... mais je vois pas trop pourquoi.

    Finalement, pourquoi les 3 autres PC ne voient pas se problème? Je trouve ça étrange.
    Merci encore pour votre aide
    P.S.: Je ne suis pas programmeur, donc navré si les conventions ne sont pas suivis. Je comprends bien qu'il est difficile de faire quelque chose avec simplement le code, mais bon, merci d'essayer, c'est apprécié!

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    moi je tenterais au début :
    if MainFrame.dtTbTransactions.Rows is null || MainFrame.dtTbTransactions.Rows.count == 0 => sortir du void
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 8
    Par défaut
    DttbTransaction -> qui est ma datasource de mon datagrid ne peut pas être 0 et ouvrir le panneau ModifDesInfos car le bouton est une colonne de mon datagridview. Donc s'il y a un bouton, il y a forcément une ligne? (non?)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2007, 21h45
  2. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37
  3. Problème lors du EXTEND d'un tableau
    Par banana31 dans le forum Oracle
    Réponses: 14
    Dernier message: 10/02/2004, 10h58
  4. Problème lors du chargement
    Par carlito dans le forum Flash
    Réponses: 26
    Dernier message: 06/01/2004, 15h21
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo