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

Windows Forms Discussion :

Exception: La génération SQL dynamique n'est pas prise en charge pour un SelectComm..


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut Exception: La génération SQL dynamique n'est pas prise en charge pour un SelectComm..
    Bonjour à tout le monde,
    Je vous poste le problème que je rencontre en ce moment :
    D'apres le choix sur un Combobox, j'affiche un DGV avec une sélection de lignes d'apres le choix sur le combobox. Le probleme intervient a la mise a jour de celui ci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    da1.update(dsValRegl_temp,"ValReglages")
    Alors je suis en droit de me demander si la mise a jour n'est possible que sur l'ensemble de la table... ou alors le probleme est autre part ...???

    J'ai pensé passé par une table temporaire qui serait rempli a chaque changement d'index sur le combobox puis qui remplirai une autre table et ensuite je chargerai cette table dans le DGV ... Bref un peu cracra ... mais bon faute de mieux...

    Donc je sollicite votre aide, avez des idées a ce sujet ???

    Merci d'avance.

    Damien

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Vraiment si tu peux mettre un peu plus de ton code pour mieux apprecier. Sinon je ne te saisie pas trop.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    OK
    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
    80
    81
    82
    83
     Private Sub MultiComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MultiComboBox1.SelectedIndexChanged
            Dim i As Integer
            Dim dtt_temp As New DataSet
            CbValRegl = New OleDbCommandBuilder(da1)
            ' Try
            i = MultiComboBox1.SelectedIndex
            If i = -1 Then
     
            Else
     
                MsgBox(i)
                TextBox2.Text = CType(dsRegla2.Tables("Combo1").Rows(i).Item("Zone_reglage_txt1"), String)
                TextBox6.Text = CType(dsRegla2.Tables("Combo1").Rows(i).Item("Zone_reglage_txt2"), String)
                TextBox7.Text = CType(dsRegla2.Tables("Combo1").Rows(i).Item("Zone_reglage_txt3"), String)
                ''''''''''''''''''''''''''''
                'Création Table intermédiare
                ''''''''''''''''''''''''''''
                cn.Open()
                SQLREQ = "CREATE TABLE Datas_reglages_Temp (N° INTEGER,ID_zone_reglage INTEGER,Reglage_txt1 Char,Reglage_txt2 Char,Reglage_txt3 Char,Reglage_ID_format Char,Reglage_long INTEGER,Reglage_DB INTEGER,Reglage_DBB INTEGER,Reglage_DBX INTEGER,Reglage_unit Char,Reglage_max Char,Reglage_min Char,Reglage_conv Char,Reglage_arch YesNo,Reglage_modif YesNo,Reglage_TAG Char); "
                ExecuteCommand(SQLREQ)
                cn.Close()
                cn.Open()
                SQLREQ = "INSERT INTO Datas_reglages_Temp  SELECT * FROM Datas_réglages WHERE ID_zone_reglage= " & CType(dsRegla2.Tables("Combo1").Rows(i).Item("ID_zone_reglage"), String) & ""
                ExecuteCommand(SQLREQ)
                'INSERT INTO Datas_reglages_Temp  SELECT * FROM Datas_reglages WHERE ID_zone_reglage= " & CType(MultiComboBox1.SelectedIndex + 1, String) & ""
     
                cn.Close()
     
                SQLREQ = "SELECT * FROM Datas_reglages_Temp" 'WHERE ID_zone_reglage = " & CType(dsRegla2.Tables("Combo1").Rows(i).Item("ID_zone_reglage"), String) & ""
                cn.Open()
                ExecuteCommand(SQLREQ)
                dstabl_temp.Clear()
                da1.SelectCommand = cmd
                CbValRegl = New OleDbCommandBuilder(da1)
                'da1.Update(dsRegla, "ValReglages")
                da1.Fill(dstabl_temp, "ValReglages_temp")
                dtt = dstabl_temp.Tables("ValReglages_temp")
                cn.Close()
                'chargement de la DataTable à partir du DataSet  
                DGVregul.DataSource = dtt
     
                ' cn.Open()
                'SQLREQ = "INSERT INTO Datas_reglages_TempMAJ  SELECT * FROM Datas_reglages_Temp"
                'ExecuteCommand(SQLREQ)
     
            End If
            'Catch ex As Exception
            'MsgBox("Exception  : " & ex.Message)
            'cn.Close()
            ' Finally
            ' cn.Close()
            ' End Try
     
        End Sub
        Private Sub Texbox2_6_7_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Leave ',GroupBox1.TabIndexChanged 
            Try
                cn.ConnectionString = connex
                cn.Open()
                SQLREQ = "UPDATE (Zones_réglages) SET Zone_reglage_txt1=@txt1,Zone_reglage_txt2=@txt2,Zone_reglage_txt3=@txt3 WHERE ID_zone_reglage= " & CType(MultiComboBox1.SelectedIndex + 1, String) & ""
                cmd.Parameters.Add(New OleDbParameter("@txt1", OleDbType.VarChar, 50))
                cmd.Parameters("@txt1").Value = TextBox2.Text.ToString
                cmd.Parameters.Add(New OleDbParameter("@txt2", OleDbType.VarChar, 50))
                cmd.Parameters("@txt2").Value = TextBox6.Text.ToString
                cmd.Parameters.Add(New OleDbParameter("@txt3", OleDbType.VarChar, 50))
                cmd.Parameters("@txt3").Value = TextBox7.Text.ToString
                ExecuteCommand(SQLREQ)
                cn.Close()
            Catch ex As Exception
                MsgBox("Erreur dans Valeurs de Réglages, Maj sur le changement Grpbox : " & ex.Message, MsgBoxStyle.OkCancel, "Erreur Val Reglages.")
            End Try
        End Sub
     
     
        Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVregul.Leave
              Try
            CbValRegl.ConflictOption = ConflictOption.OverwriteChanges ' Autorise l'écrasement, pour un pb de violation.
            da1.Update(dstabl_temp, "ValReglages_temp")
     
              Catch ex As Exception
           MsgBox("Exception ValReglages MAJ : " & ex.Message, MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")
     
              End Try
        End Sub
    J'espere que ca va t aider.
    Précisions:
    J'ouvre une form, qui contient : 1combobox, des textbox,1 DGV
    Lorsque je choisi un item dans le combobox, les texbox sont modifiés ainsi que le DGV.
    Seulement je veu pouvoir faire des modifs ensuite sur mon DGV.
    Le pb est le suivant.
    Quand je selectionne un item avec le combobox, je fai une requete genre "SELECT * WHERE .." le résultat est affiché dans le DGV, et lorque je fait des modifs la mise a jour n'est pas possible.
    Je sais pas si je me suis mieux expliqué...

    Damien

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    J'ai regardé ton code et j'avoue que je ne voie pas grand chose comme erreur.
    Parcontre je pense que l'erreur peut provenir de ça:
    [QUOTE]Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVregul.Leave Try
    CbValRegl.ConflictOption = ConflictOption.OverwriteChanges ' Autorise l'écrasement, pour un pb de violation.
    da1.Update(dstabl_temp, "ValReglages_temp")

    Catch ex As Exception
    MsgBox("Exception ValReglages MAJ : " & ex.Message, MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")

    End Try
    End Sub[/QUOTE]

    ilfaut plutot faire ça
    Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVregul.RowValidated
    Try
    CbValRegl.ConflictOption = ConflictOption.OverwriteChanges ' Autorise l'écrasement, pour un pb de violation.
    da1.Update(dstabl_temp, "ValReglages_temp")

    Catch ex As Exception
    MsgBox("Exception ValReglages MAJ : " & ex.Message, MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")

    End Try
    End Sub

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Tu m'excuse mais je n'ai pas su maitriser les caractères:
    Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVregul.RowValidated
    Try
    CbValRegl.ConflictOption = ConflictOption.OverwriteChanges ' Autorise l'écrasement, pour un pb de violation.
    da1.Update(dstabl_temp, "ValReglages_temp")

    Catch ex As Exception
    MsgBox("Exception ValReglages MAJ : " & ex.Message, MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")

    End Try
    End Sub
    Plutot que ça:
    Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVregul.Leave
    Try
    CbValRegl.ConflictOption = ConflictOption.OverwriteChanges ' Autorise l'écrasement, pour un pb de violation.
    da1.Update(dstabl_temp, "ValReglages_temp")

    Catch ex As Exception
    MsgBox("Exception ValReglages MAJ : " & ex.Message, MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")

    End Try
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    C'est pas grave pour le caractère.

    Par contre en fait pour la validation sur changement de ligne elle se fait comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private Sub DGVRegul_RowValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVregul.RowValidated
    Je voulais testé autrement en mettant ".Leave"...

    Donc ca ne vient pas de la ! J ai avancé un peu puique j arrive a faire la mise a jour sur le premier item de démarrage, mais lorsque je modifie le DGV avec le combobox .. Paf Exception !!

    Message : La génération SQL dynamique n'est pas prise en charge pour un SelectCommand qui ne retourne pas des informations de table de base.

    Type d'exception : InvalidOperationException

    J'ai beau chercher ... je sèche !!!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Ca y est ca fonctionne !! le programme a été revu dans son organisation.
    C'est ca collait pas. Si quelqu'un veut d'autres explications ... demander moi !!

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/06/2011, 12h41
  2. erreur : "La topologie actuelle n'est pas prise en charge"
    Par chantalboyer dans le forum Installation
    Réponses: 0
    Dernier message: 28/12/2010, 19h32
  3. Réponses: 1
    Dernier message: 13/07/2010, 18h32
  4. Réponses: 4
    Dernier message: 30/05/2010, 23h35
  5. Réponses: 9
    Dernier message: 30/01/2008, 09h35

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