Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    [vb net] Combo in datagridview

    Salve,
    ho collegato una datagridview ad una tabella del mio dataset. Una delle colonne è una combo.

    Quando carico la griglia funziona tutto a meraviglia anche se provo a modificare le righe esistenti. Il problema sorge quando si clicca in una cella vuota e quindi si crea una nuova riga. L'eccezione generata credo dipenda dal fatto che il valore della colonna della combo sia null ma, tale valore non sia presente nel datatable che richiamo

    Poteri risolvere impedendo la creazione di nuove righe ma penso si possa fare meglio.

    Vorrei intercettare quella eccezione e ignorarla semplicemente.

    Come posso fare?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Per intercettare un'eccezione puoi inserire la parte di codice ,che potrebbe sollevare l'eccezione, in un costrutto Try ... Catch ... EndTry

    Facci sapere....
    Ciao

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    il problema nasce proprio dall'individuare cosa genere l'eccezione , o meglio la procedura.
    il problema nasce quando l'utente prova ad inserire una nuova riga nel data grid.
    La riga viene inserita ma essendo vuota non c'è corrispondenza per la colonna che contiene la combo.

    quindi come intercetto tale cosa?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Hai provato a gestire l'evento RowsAdded della datagridview?

    Facci sapere...
    Ciao

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    fatto ma non la intercetta. mi blocca sempre il programma
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Puoi mostrare un pò di codice??

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    lo mostreri ma non c'è nulla

    ho messo un datagrid sul form
    lo associo al dataset


    questo è nel load del form

    Me.QUtente21TableAdapter.Fill(Me.DbDataSet.qUtente 21

    e questo è il codice del file designer associato al form

    codice:
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class frmEditUser
        Inherits System.Windows.Forms.Form
    
        'Form esegue l'override del metodo Dispose per pulire l'elenco dei componenti.
        <System.Diagnostics.DebuggerNonUserCode()> _
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
    
        'Richiesto da Progettazione Windows Form
        Private components As System.ComponentModel.IContainer
    
        'NOTA: la procedura che segue è richiesta da Progettazione Windows Form
        'Può essere modificata in Progettazione Windows Form.  
        'Non modificarla nell'editor del codice.
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container
            Me.DataGridView1 = New System.Windows.Forms.DataGridView
            Me.UtenteIDDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewTextBoxColumn
            Me.CognomeDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewTextBoxColumn
            Me.NomeDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewTextBoxColumn
            Me.GruppoDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewComboBoxColumn
            Me.DbDataSet = New Attività_di_Gruppo.dbDataSet
            Me.AttDataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewComboBoxColumn
            Me.QUtente21BindingSource = New System.Windows.Forms.BindingSource(Me.components)
            Me.QUtente21TableAdapter = New Attività_di_Gruppo.dbDataSetTableAdapters.qUtente21TableAdapter
            CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.DbDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.QUtente21BindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'DataGridView1
            '
            Me.DataGridView1.AllowUserToOrderColumns = True
            Me.DataGridView1.AutoGenerateColumns = False
            Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.UtenteIDDataGridViewTextBoxColumn, Me.CognomeDataGridViewTextBoxColumn, Me.NomeDataGridViewTextBoxColumn, Me.GruppoDataGridViewTextBoxColumn, Me.AttDataGridViewTextBoxColumn})
            Me.DataGridView1.DataSource = Me.QUtente21BindingSource
            Me.DataGridView1.Location = New System.Drawing.Point(13, 13)
            Me.DataGridView1.Name = "DataGridView1"
            Me.DataGridView1.Size = New System.Drawing.Size(900, 150)
            Me.DataGridView1.TabIndex = 0
            '
            'UtenteIDDataGridViewTextBoxColumn
            '
            Me.UtenteIDDataGridViewTextBoxColumn.DataPropertyName = "utente_ID"
            Me.UtenteIDDataGridViewTextBoxColumn.HeaderText = "utente_ID"
            Me.UtenteIDDataGridViewTextBoxColumn.Name = "UtenteIDDataGridViewTextBoxColumn"
            '
            'CognomeDataGridViewTextBoxColumn
            '
            Me.CognomeDataGridViewTextBoxColumn.DataPropertyName = "cognome"
            Me.CognomeDataGridViewTextBoxColumn.HeaderText = "cognome"
            Me.CognomeDataGridViewTextBoxColumn.Name = "CognomeDataGridViewTextBoxColumn"
            '
            'NomeDataGridViewTextBoxColumn
            '
            Me.NomeDataGridViewTextBoxColumn.DataPropertyName = "nome"
            Me.NomeDataGridViewTextBoxColumn.HeaderText = "nome"
            Me.NomeDataGridViewTextBoxColumn.Name = "NomeDataGridViewTextBoxColumn"
            '
            'GruppoDataGridViewTextBoxColumn
            '
            Me.GruppoDataGridViewTextBoxColumn.DataPropertyName = "gruppo_ID"
            Me.GruppoDataGridViewTextBoxColumn.DataSource = Me.DbDataSet
            Me.GruppoDataGridViewTextBoxColumn.DisplayMember = "qUtente21.gruppo"
            Me.GruppoDataGridViewTextBoxColumn.HeaderText = "gruppo"
            Me.GruppoDataGridViewTextBoxColumn.Name = "GruppoDataGridViewTextBoxColumn"
            Me.GruppoDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.[True]
            Me.GruppoDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic
            Me.GruppoDataGridViewTextBoxColumn.ValueMember = "qUtente21.gruppo_ID"
            '
            'DbDataSet
            '
            Me.DbDataSet.DataSetName = "dbDataSet"
            Me.DbDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
            '
            'AttDataGridViewTextBoxColumn
            '
            Me.AttDataGridViewTextBoxColumn.DataPropertyName = "att"
            Me.AttDataGridViewTextBoxColumn.HeaderText = "att"
            Me.AttDataGridViewTextBoxColumn.Items.AddRange(New Object() {"Si", "No"})
            Me.AttDataGridViewTextBoxColumn.Name = "AttDataGridViewTextBoxColumn"
            Me.AttDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.[True]
            Me.AttDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic
            '
            'QUtente21BindingSource
            '
            Me.QUtente21BindingSource.DataMember = "qUtente21"
            Me.QUtente21BindingSource.DataSource = Me.DbDataSet
            '
            'QUtente21TableAdapter
            '
            Me.QUtente21TableAdapter.ClearBeforeFill = True
            '
            'frmEditUser
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(934, 732)
            Me.Controls.Add(Me.DataGridView1)
            Me.Name = "frmEditUser"
            Me.Text = "frmEditUser"
            CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.DbDataSet, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.QUtente21BindingSource, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
    
        End Sub
        Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
        Friend WithEvents DbDataSet As Attività_di_Gruppo.dbDataSet
        Friend WithEvents QUtente21BindingSource As System.Windows.Forms.BindingSource
        Friend WithEvents QUtente21TableAdapter As Attività_di_Gruppo.dbDataSetTableAdapters.qUtente21TableAdapter
        Friend WithEvents UtenteIDDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents CognomeDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents NomeDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents GruppoDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewComboBoxColumn
        Friend WithEvents AttDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewComboBoxColumn
    End Class
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    A dire il vero.....volevo vedere il codice che avevi scritto in funzione del mio suggerimento .... perchè, qualora tu l'avessi scritto giusto.... temo che il problema dipenda da qualcosa d'altro.

    facci sapere...
    Ciao

  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    avevo inserito un try catch nella routine da te indicata in modo che ogni eccezione sia gestita con quella

    codice:
      Private Sub DataGridView1_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
            Try
    
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Information)
            End Try
        End Sub
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  10. #10
    No .... probabilmente sono partito io con il consiglio sbagliato.
    Fai un'ulteriore prova ..... prova a commentare nel file.designer del form che contiene il datagridview, questa riga di codice:
    codice:
    <System.Diagnostics.DebuggerStepThrough()> _
    appena prima di InitializeComponent.
    E prova a riavviare il debug dell'applicazione ..... dovrebbe piantarsi nel punto in cui viene generata l'eccezione....

    facci sapere....
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.