none
[VB.Net Community 2013] DataGridView DataBase RRS feed

  • Domanda

  • Buongiorno e buona domenica a tutti, ho un problema con una DataGridView,  ho creato una tabella, trascinata sul form e posizionato il tutto ha questo aspetto in programmazione:

    ma quando vado ad eseguire il codice, si presenta in questo modo:

    in genere dovrebbe avere l'aspetto della datagridview inferiore, in quanto non ci sono dati, ma la prima in alto è come se vi fosse già stato richiesto un record, infatti ho nel codice un controllo per la presenza dati che mi indica la presenza di un record.

    Se provo ad inserire un record e salvare i dati mi ritrovo due righe, la prima vuota e la seconda con i dati che inserisco.

    Pensavo d'aver omesso qualche impostazione o aver creato male la tabella, ma l'ho confrontata con altre che funzionano regolarmente e impostazioni e tabelle sono identiche.

    Sapete forse dirmi cosa sto sbagliando?

    per il momento non ho postato codici perché in realtà non ce ne sono, ho appena finito di impostare tutto quello che vedete..

    Grazie

    Guido

    domenica 14 febbraio 2016 13:04

Risposte

  • Ciao Guido.G,

    non è che, banalmente, nelle altre soluzioni hai il Focus che punta in un punto diverso dalla Griglia (es. hai una textbox per la ricerca e il focus punta lì all'ingresso nella form ?

    Fai una controprova aggiungi nella form una Texbox e nell'evento Load punta il focus a quella textbox

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

    http://community.visual-basic.it/renato

    • Contrassegnato come risposta Guido.G domenica 14 febbraio 2016 16:59
    domenica 14 febbraio 2016 16:11
    Moderatore

Tutte le risposte

  • Pensavo d'aver omesso qualche impostazione o aver creato male la tabella, ma l'ho confrontata con altre che funzionano regolarmente e impostazioni e tabelle sono identiche.

    Sapete forse dirmi cosa sto sbagliando?


    Se guardi i pulsantini sopra le due grid, noti che che non sono proprio impostati allo stesso modo. Forse nella prima grid è abilitato il fermaposto per l'inserimento automatico di un nuovo record.

    domenica 14 febbraio 2016 13:33
  • Ciao BlueLed....predona la mia ignoranza, ma non riesco a capire a quale impostazione ti riferisci, non riesco a capire cosa sia, nella proprietà della grid, il fermaposto, ho paragonato le impostazioni delle due grid...e a me sembrano impostate in modo uguale...

    domenica 14 febbraio 2016 14:10
  • Ho provato a cercare nel codice ed ho trovato in frm.Reso.Designer.vb questo codice generato automaticamente:

     'Table_ResoDataGridView
            '
            Me.Table_ResoDataGridView.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.Table_ResoDataGridView.AutoGenerateColumns = False
            Me.Table_ResoDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells
            Me.Table_ResoDataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells
            Me.Table_ResoDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.Table_ResoDataGridView.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.DataGridViewTextBoxColumn1, Me.DataGridViewTextBoxColumn2, Me.DataGridViewTextBoxColumn3, Me.DataGridViewTextBoxColumn4, Me.DataGridViewTextBoxColumn5, Me.DataGridViewTextBoxColumn6, Me.DataGridViewTextBoxColumn7, Me.DataGridViewTextBoxColumn8, Me.DataGridViewTextBoxColumn9, Me.DataGridViewTextBoxColumn10, Me.DataGridViewTextBoxColumn11, Me.DataGridViewTextBoxColumn12, Me.DataGridViewImageColumn1, Me.DataGridViewTextBoxColumn13, Me.DataGridViewTextBoxColumn14, Me.DataGridViewTextBoxColumn15, Me.DataGridViewTextBoxColumn16, Me.DataGridViewTextBoxColumn17, Me.DataGridViewTextBoxColumn18, Me.DataGridViewTextBoxColumn19, Me.DataGridViewTextBoxColumn20, Me.DataGridViewTextBoxColumn21, Me.DataGridViewTextBoxColumn22, Me.DataGridViewTextBoxColumn23, Me.DataGridViewTextBoxColumn24, Me.DataGridViewTextBoxColumn25, Me.DataGridViewImageColumn2, Me.DataGridViewTextBoxColumn26, Me.DataGridViewTextBoxColumn27, Me.DataGridViewTextBoxColumn28, Me.DataGridViewTextBoxColumn29, Me.DataGridViewTextBoxColumn30, Me.DataGridViewTextBoxColumn31, Me.DataGridViewTextBoxColumn32, Me.DataGridViewTextBoxColumn33, Me.DataGridViewTextBoxColumn34, Me.DataGridViewTextBoxColumn35, Me.DataGridViewTextBoxColumn36})
            Me.Table_ResoDataGridView.DataSource = Me.Table_ResoBindingSource
            Me.Table_ResoDataGridView.Location = New System.Drawing.Point(12, 28)
            Me.Table_ResoDataGridView.Name = "Table_ResoDataGridView"
            Me.Table_ResoDataGridView.ReadOnly = True
            Me.Table_ResoDataGridView.Size = New System.Drawing.Size(996, 137)
            Me.Table_ResoDataGridView.TabIndex = 1
    non so se è questo quello che intendevi...ma anche se fosse...è già impostato ad FALSE.......

    domenica 14 febbraio 2016 15:07
  • ma non riesco a capire a quale impostazione ti riferisci, non riesco a capire cosa sia, nella proprietà della grid, il fermaposto, ho paragonato le impostazioni delle due grid...e a me sembrano impostate in modo uguale...

    Ad esempio, in una l'icona rossa con la X è abilitata, nell'altra è disabilitata. In una compaiono anche altre icone.
    domenica 14 febbraio 2016 15:19
  • Ciao Guido,

    il "fermaposto" è una proprietà della tabella di origine e non della DGV.

    In questo caso (visto che hai utilizzato il Drag and drop per generare il tutto) Visual Studio ti ha generato un DataSet al cui interno le DataTable hanno la proprietà AutoincrementSeed delle colonne chiave impostata a -1.

    Grazie a questo fermaposto eviterai di avere record non univoci all'interno delle tabelle.

    https://msdn.microsoft.com/it-it/library/system.data.datacolumn.autoincrement(v=vs.110).aspx

    https://msdn.microsoft.com/it-it/library/system.data.datacolumn.autoincrementseed(v=vs.110).aspx


    domenica 14 febbraio 2016 15:29
  • Ciao Guido.G,

    non vedo nulla di strano nella prima DataGridView hai il focus (Prima cella in blu) ed il simbolo >* che sta ad indicare che stai inserendo un record nella griglia.

    Anche Access ti dice record 1/1 se stai inserendo il primo record

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

    http://community.visual-basic.it/renato

    domenica 14 febbraio 2016 15:38
    Moderatore
  • Buonasera a tutti, scusate le mie domande, ma io non capisco una cosa, ho creato altre tabelle e utilizzando lo stesso sistema, trascinandole in Database.xsd  mi ha generato tutti quei componenti necessari per immagazzinare modificare eliminare dati, fino ad ora non ho mai avuto problemi...perlomeno do questo genere, se la generazione è automatica...cosa è successo per cui mi genera automaticamente il primo record anche se non richiesto?

    Se il problema è sulle impostazioni della tabella...mi sembra comunque da profano...strano in quanto le impostazioni sono uguali a quelle di altre tabelle:

    domenica 14 febbraio 2016 16:08
  • Ciao Guido.G,

    non è che, banalmente, nelle altre soluzioni hai il Focus che punta in un punto diverso dalla Griglia (es. hai una textbox per la ricerca e il focus punta lì all'ingresso nella form ?

    Fai una controprova aggiungi nella form una Texbox e nell'evento Load punta il focus a quella textbox

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

    http://community.visual-basic.it/renato

    • Contrassegnato come risposta Guido.G domenica 14 febbraio 2016 16:59
    domenica 14 febbraio 2016 16:11
    Moderatore
  • Ho fatto una ricerca su auto incrementSeed:

      E:\Backup Visual Basic 2010\Visual Studio 2013\Projects\GestionaleDitta\GestionaleDitta\Database_GestioneDataSet.Designer.vb(10577):            Me.columnIdReso.AutoIncrementSeed = -1
      E:\Backup Visual Basic 2010\Visual Studio 2013\Projects\GestionaleDitta\GestionaleDitta\Database_GestioneDataSet.Designer.vb(11033):            Me.columnidMatReso.AutoIncrementSeed = -1

    assieme alle altre mi segnala che è impostato a -1...quindi?

    domenica 14 febbraio 2016 16:12
  • faccio la prova Renato...
    domenica 14 febbraio 2016 16:13
  • Perfetto....ennesima figuraccia....ho impostato il focus ad una casella di testo e  non mi genera più il record, scusate...e grazie molte a tutti.

    Guido

    domenica 14 febbraio 2016 16:20
  • Perfetto....ennesima figuraccia....ho impostato il focus ad una casella di testo e  non mi genera più il record, scusate...e grazie molte a tutti.

    Guido

    Ciao Guido.G,

    nessuna figuraccia .. se lo sapevi non lo avresti chiesto :)

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

    http://community.visual-basic.it/renato

    domenica 14 febbraio 2016 16:30
    Moderatore