none
[VB.Net Community 2013] convalidare la data presente in DateTimePicker RRS feed

  • Domanda

  • Buongiorno a tutti, non riesco a fare in modo che la data presente nella DateTimePicker presente di default ( in genere la data corrente) sia salvata nella tabella assieme a gli altri dati, quando vado a effettuare il salvataggio i dati delle text box vengono salvati, mentre la data, anche se va bene che sia quella corrente devo comunque selezionarla altrimenti mi rimane il campo vuoto, come posso fare in modo che se non seleziono una data diversa da quella presente sia comunque inserita nella cella la data che viene visualizzata?

    Grazie 

    GUido

    giovedì 25 febbraio 2016 12:55

Risposte

  • Deleted
    • Contrassegnato come risposta Guido.G domenica 28 febbraio 2016 18:12
    domenica 28 febbraio 2016 15:58
  • Ho forse trovato...almeno sembra funzionare, devo impostare anche la proprietà TXT:

    • Contrassegnato come risposta Guido.G sabato 27 febbraio 2016 17:38
    • Contrassegno come risposta annullato Guido.G domenica 28 febbraio 2016 08:49
    • Contrassegnato come risposta Guido.G domenica 28 febbraio 2016 18:13
    sabato 27 febbraio 2016 17:32
  • Deleted
    • Contrassegnato come risposta Guido.G domenica 28 febbraio 2016 18:21
    domenica 28 febbraio 2016 18:16

Tutte le risposte

  • Ciao Guido,

    puoi assegnare al DateTimePicker il valore di default che vuoi es.

    DateTimePicker.Value = DateTime.Today

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

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

    giovedì 25 febbraio 2016 13:38
    Moderatore
  • Ciao Renato, ok in questo modo imposto la data corrente, ma perchè pur essendo visualizzata nel datetimepicker non la inserisce da solo?, forse perchè è solo una visualizzazione ma non è convalidata?
    giovedì 25 febbraio 2016 15:16
  • Ciao Guido,

    bisognerebbe approfondire ad esempio andando a vedere in debug il valore di DateTimePicker.Value

    bisogna capire come inizializzi di DateTimePicker così a naso non lo inizializzi e quindi lui visualizza la data corrente ...

    Ciao


    Renato Marzaro

    Microsoft MVP .NET

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

    venerdì 26 febbraio 2016 13:13
    Moderatore
  • Ciao Renato, ...mi sa che non ho inizializzato nulla, io ho impostato l'oggetto DataTimePicker in origine dati della tabella che sto utilizzando ed ho trascinato il campo nel form, e mi ha creato l'oggetto relazionato alla tabella...presumo che non sia sufficiente questo , perché in questo modo quando salvo i dati, anche se sula DataTimePicker è visualizzata la data corrente non me la salva nella tabella, la datagridview non mi mostra nessun dato, ho provato a mettere una label che mi mostrasse il valore della DataTimePicker al momento del salvataggio, e li risulterebbe la data che visualizza...ma non la salva nella cella corrispondente della tabella....

    Se invece inserisco la riga di codice che mi hai scritto..logicamente mi trasferisce la data corrente.

    • Modificato Guido.G sabato 27 febbraio 2016 12:53 correzione
    sabato 27 febbraio 2016 12:52
  • Cosa hai usato per collegare il DataTimePicker al Database? "Databindings - Advanced" dalla finestra delle proprietà?
    sabato 27 febbraio 2016 14:27
  • Ciao BlueLed, il collegamento lo ha fatto in automatico:

    "ho impostato l'oggetto DataTimePicker in origine dati della tabella che sto utilizzando ed ho trascinato il campo nel form, e mi ha creato l'oggetto relazionato alla tabella"

    Comunque si...trascinato se vado sulle propietà dell'oggetto-> Advanced 

    l'oggetto è collegato al database:

    Ho provato a impostare anche "Tipo Formato" ma non cambia nulla...forse va impostato qualcosa sulla casella "Valore nullo"?

    sabato 27 febbraio 2016 17:15
  • Ho forse trovato...almeno sembra funzionare, devo impostare anche la proprietà TXT:

    • Contrassegnato come risposta Guido.G sabato 27 febbraio 2016 17:38
    • Contrassegno come risposta annullato Guido.G domenica 28 febbraio 2016 08:49
    • Contrassegnato come risposta Guido.G domenica 28 febbraio 2016 18:13
    sabato 27 febbraio 2016 17:32
  • Ho provato su altri campi di questo tipo che ho e sembra funzionare, quindi va impostata anche la proprietà txt in "DataBindings -> Advanced", in questo modo se non cambi la data mi trasferisce la data corrente...quella visualizzata.

    Grazie a tutti che mi avete fatto ragionare ulteriormente .... Grazie :-)

    Guido

    • Contrassegnato come risposta Guido.G sabato 27 febbraio 2016 17:38
    • Contrassegno come risposta annullato Guido.G domenica 28 febbraio 2016 08:49
    sabato 27 febbraio 2016 17:38
  • Funziona anche se cambi la data attraverso il Picker? Cioè, il cambiamento viene riflettuto nel db?
    sabato 27 febbraio 2016 17:52
  • Si BlueLed, funziona sia se non cambi nulla, quindi scrive nel database il valore indicato, quello attuale o quello che viene modificato, sia se imposti te la data, a quel punto trasferisce la data impostata.
    sabato 27 febbraio 2016 18:00
  • Ciao Paperoga, ho provato a togliere il riferimento della binding->Advanced ->Txt =nessuno e quando va in esecuzione non mi trasferisce più la data, mi rimane il campo vuoto...
    sabato 27 febbraio 2016 20:28
  • Per me non ci sono problemi...posso anche condividerlo....premetto che so che non è scritto bene, come dico sempre in questi casi...sono un autodidatta con tantissime lacune..ho imparato qualcosa grazie alla mia testardaggine e al vostro aiuto..

    dimmi come fare..

    • Modificato Guido.G sabato 27 febbraio 2016 20:55
    sabato 27 febbraio 2016 20:55
  • Ho tolto la segnalazione come risposta perché ho fatto un mini progetto e qui il comportamento è bizzarro, provo a spiegare anche questo:

    Premettendo che le impostazioni delle proprietà di riferimento sono quelle che imposta il compilatore al momento del trascinamento degli elementi nel form, quando vado a eseguire, immetto dei dati casuali e non inserisco la data, nemmeno vado a schiacciare con il mouse e nemmeno con il tab, lascio quella di default, salvo il tutto e il campo data nella datagridviewe non appare nulla, (ho inserito anche una riga di aggiornamento del db dopo il salvataggi), se modifico :

    Proprietà DataDateTimePicker->DataBindings ->Text e inserisco il valore di riferimento al campo

    quando vado a eseguire di nuovo e faccio nuovo record, mi inserisce la data visualizzata nel record precedentemente creato (che prima era vuoto).

    Continuando a inserire i dati sul secondo record, quando vado a salvare (nel campo data non faccio azioni) mi salva anche la data visualizzata.

    Provando ho notato che se creo più di un record senza modificare la text di databindings e scorro con i cursori della BindingNavigator mi inserisce la data corrente nei campi data, logicamente se non salvo ma chiudo il progetto e lo rieseguo le date che prima erano presento non ci sono...

    Spero di non aver fatto troppa confusione e che si riesca a capire.....

    Quindi...da cosa dipende tutto questo?

    Comunque se inserisco in :

    Advanced->DataBindings -> txt -> riferimento al campo

    la datami viene comunque inserita correttamente.

    domenica 28 febbraio 2016 09:06
  • Dovresti scrivere quello che succede e quali differenze ci sono con quello che invece ti aspetti.
    domenica 28 febbraio 2016 10:11
  • Ciao Renato, ...mi sa che non ho inizializzato nulla, io ho impostato l'oggetto DataTimePicker in origine dati della tabella che sto utilizzando ed ho trascinato il campo nel form, e mi ha creato l'oggetto relazionato alla tabella...presumo che non sia sufficiente questo , perché in questo modo quando salvo i dati, anche se sula DataTimePicker è visualizzata la data corrente non me la salva nella tabella, la datagridview non mi mostra nessun dato, ho provato a mettere una label che mi mostrasse il valore della DataTimePicker al momento del salvataggio, e li risulterebbe la data che visualizza...ma non la salva nella cella corrispondente della tabella....

    Se invece inserisco la riga di codice che mi hai scritto..logicamente mi trasferisce la data corrente.

    Il problema l'ho sulla datatimepicker che quando salvo i dati e non ho effettuato modifiche della data, non mi inserisce la data corrente nella cella corrispondente e quindi non la visualizza sulla DGV e se non sbaglio, se non è visualizzata in DGV non è salvata nemmeno sulla tabella..

    se imposto come detto prima...invece mi visualizza in DGV il dato corrente della DTP.



    • Modificato Guido.G domenica 28 febbraio 2016 10:34
    domenica 28 febbraio 2016 10:33
  • No...nessuna modifica, trascinata nel form e basta....e sinceramente non so usare bene..o per niente il tag...mi hanno spiegato una volta...ma dovrei provare..prima...non lo so usare.. :-)
    domenica 28 febbraio 2016 10:36
  • Il problema l'ho sulla datatimepicker che quando salvo i dati e non ho effettuato modifiche della data, non mi inserisce la data corrente nella cella corrispondente e quindi non la visualizza sulla DGV e se non sbaglio, se non è visualizzata in DGV non è salvata nemmeno sulla tabella..

    se imposto come detto prima...invece mi visualizza in DGV il dato corrente della DTP.



    E invece cosa ti aspetti che visualizzi?
    domenica 28 febbraio 2016 10:53
  • Mi aspetterei che quando salvo i dati salvi la data che visualizza sul controllo, invece non lo fa, rimane il campo vuoto, mi è stato detto che non è il modo corretto quello che ho trovato....
    domenica 28 febbraio 2016 10:56
  • Mi aspetterei che quando salvo i dati salvi la data che visualizza sul controllo, invece non lo fa, rimane il campo vuoto, mi è stato detto che non è il modo corretto quello che ho trovato....

    Però hai detto che con il modo che hai trovato comunque funziona, ma hai aggiunto che c'è qualche altra cosa che non va e non capisco in che consiste.
    domenica 28 febbraio 2016 11:09
  • Ho tolto la segnalazione come risposta perché ho fatto un mini progetto e qui il comportamento è bizzarro, provo a spiegare anche questo:

    Premettendo che le impostazioni delle proprietà di riferimento sono quelle che imposta il compilatore al momento del trascinamento degli elementi nel form, quando vado a eseguire, immetto dei dati casuali e non inserisco la data, nemmeno vado a schiacciare con il mouse e nemmeno con il tab, lascio quella di default, salvo il tutto e il campo data nella datagridviewe non appare nulla, (ho inserito anche una riga di aggiornamento del db dopo il salvataggi), se modifico :

    Proprietà DataDateTimePicker->DataBindings ->Text e inserisco il valore di riferimento al campo

    quando vado a eseguire di nuovo e faccio nuovo record, mi inserisce la data visualizzata nel record precedentemente creato (che prima era vuoto).

    Continuando a inserire i dati sul secondo record, quando vado a salvare (nel campo data non faccio azioni) mi salva anche la data visualizzata.

    Provando ho notato che se creo più di un record senza modificare la text di databindings e scorro con i cursori della BindingNavigator mi inserisce la data corrente nei campi data, logicamente se non salvo ma chiudo il progetto e lo rieseguo le date che prima erano presento non ci sono...

    Spero di non aver fatto troppa confusione e che si riesca a capire.....

    Quindi...da cosa dipende tutto questo?

    Comunque se inserisco in :

    Advanced->DataBindings -> txt -> riferimento al campo

    la datami viene comunque inserita correttamente.

    Si...ho fatto un nuovo progetto ed ho provato..ma ho notato una nuova cosa...quella sulla citazione.
    domenica 28 febbraio 2016 11:21
  • Si...ho fatto un nuovo progetto ed ho provato..ma ho notato una nuova cosa...quella sulla citazione.
    Infatti, quella nuova cosa non è chiaro in cosa consista.
    domenica 28 febbraio 2016 12:00

  • Provando ho notato che se creo più di un record senza modificare la text di databindings e scorro con i cursori della BindingNavigator mi inserisce la data corrente nei campi data, logicamente se non salvo ma chiudo il progetto e lo rieseguo le date che prima erano presento non ci sono...

    Quindi...da cosa dipende tutto questo?

    Comunque se inserisco in :

    Advanced->DataBindings -> txt -> riferimento al campo

    la datami viene comunque inserita correttamente.

    in questo sopra scritto, andando avanti e indietro con i cursori dove c'erano i campi vuoti della dgv inserisce la data visualizzata sulla dtp, pensandoci...forse perchè legge come un aggiornamento?
    domenica 28 febbraio 2016 12:18

  • Provando ho notato che se creo più di un record senza modificare la text di databindings e scorro con i cursori della BindingNavigator mi inserisce la data corrente nei campi data, logicamente se non salvo ma chiudo il progetto e lo rieseguo le date che prima erano presento non ci sono...

    Quindi...da cosa dipende tutto questo?

    Comunque se inserisco in :

    Advanced->DataBindings -> txt -> riferimento al campo

    la datami viene comunque inserita correttamente.

    in questo sopra scritto, andando avanti e indietro con i cursori dove c'erano i campi vuoti della dgv inserisce la data visualizzata sulla dtp, pensandoci...forse perchè legge come un aggiornamento?

    Cioè ti aspetteresti che nel Picker, invece, comparisse la data riportata nel campo del record corrente e che questa, nel campo, non venisse modificata?


    • Modificato BlueLed domenica 28 febbraio 2016 12:25
    domenica 28 febbraio 2016 12:25
  • No BlueLed, so che se nel campo relativo della dgv c'è una data memorizzata, scorrendo con i cursori della BNavigator visualizzerà i relativi dati.

    quello che ho riscontrato ultimamente è:

    se inserisco due record dove nella cella della DGV non sono presenti date, scorrendo con i cursori della BNavigator mi sono reso conto che inserisce la data visualizzata nella DTP, li inserisce ma non li salva, perchè ho provato a scorrere ma se chiudo il progetto e lo rieseguo non sono comunque presenti nei campi della DGV.

    domenica 28 febbraio 2016 12:38

  • quello che ho riscontrato ultimamente è:

    se inserisco due record dove nella cella della DGV non sono presenti date, scorrendo con i cursori della BNavigator mi sono reso conto che inserisce la data visualizzata nella DTP, li inserisce ma non li salva, perchè ho provato a scorrere ma se chiudo il progetto e lo rieseguo non sono comunque presenti nei campi della DGV.

    Io mi aspetterei che quando aggiungi un record, la data nel Picker venga inserita nel campo relativo del record e quindi anche visualizzata nella Grid e quando ti muovi con il cursore sulla Grid, nel Picker venga mostrata la data che è nel record corrente.


    • Modificato BlueLed domenica 28 febbraio 2016 12:48
    domenica 28 febbraio 2016 12:46
  • infatti...è quello che mi aspetterei anch'io, ma non è quello che mi fa il progetto di prova che avevo fatto, 

    2 record e campi data vuoti (perchè non ha inserito nulla dopo il salvataggio)

    scorro i record con i cursori->mi visualizza nella DGV il valore visualizzato nella Picker, ma li visualizza soltanto non rimangono salvati, mentre dovrebbero restare vuoti....giusto?

    domenica 28 febbraio 2016 12:55
  • infatti...è quello che mi aspetterei anch'io, ma non è quello che mi fa il progetto di prova che avevo fatto, 

    2 record e campi data vuoti (perchè non ha inserito nulla dopo il salvataggio)

    scorro i record con i cursori->mi visualizza nella DGV il valore visualizzato nella Picker, ma li visualizza soltanto non rimangono salvati, mentre dovrebbero restare vuoti....giusto?

    Nell'Esplora Soluzione c'è un' icona che ti permette di mostrare tutti i file del progetto. Se mostri tutti i file, per il Form1, ad esempio, noterai anche un file chiamato Form1.Designer.vb, o qualcosa del genere. Lì c'è il metodo InitializeComponents, dove il designer crea i componenti e imposta il binding. Prova a postare il contenuto di quel metodo per vedere cosa avviene dietro le quinte.



    • Modificato BlueLed domenica 28 febbraio 2016 13:08
    domenica 28 febbraio 2016 13:06
  • io..posto...ma è lunghetto...

    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class Form1
        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()
            Dim IdLabel As System.Windows.Forms.Label
            Dim CodiceRelazioneLabel As System.Windows.Forms.Label
            Dim CampoT1_1Label As System.Windows.Forms.Label
            Dim CampoT1_2Label As System.Windows.Forms.Label
            Dim NuovoLabel As System.Windows.Forms.Label
            Dim DataLabel As System.Windows.Forms.Label
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
            Me.Table1BindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components)
            Me.BindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel()
            Me.BindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator()
            Me.BindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox()
            Me.BindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator()
            Me.BindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton()
            Me.BindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator()
            Me.Table1BindingNavigatorSaveItem = New System.Windows.Forms.ToolStripButton()
            Me.Table1DataGridView = New System.Windows.Forms.DataGridView()
            Me.IdTextBox = New System.Windows.Forms.TextBox()
            Me.CodiceRelazioneTextBox = New System.Windows.Forms.TextBox()
            Me.CampoT1_1TextBox = New System.Windows.Forms.TextBox()
            Me.CampoT1_2TextBox = New System.Windows.Forms.TextBox()
            Me.NuovoTextBox = New System.Windows.Forms.TextBox()
            Me.DataDateTimePicker = New System.Windows.Forms.DateTimePicker()
            Me.Table1BindingSource = New System.Windows.Forms.BindingSource(Me.components)
            Me.DataBaseTabelleDataSet = New Tabelle_in_Relazione.DataBaseTabelleDataSet()
            Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.DataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.DataGridViewTextBoxColumn3 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.DataGridViewTextBoxColumn4 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.DataGridViewTextBoxColumn5 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.DataGridViewTextBoxColumn6 = New System.Windows.Forms.DataGridViewTextBoxColumn()
            Me.Table1TableAdapter = New Tabelle_in_Relazione.DataBaseTabelleDataSetTableAdapters.Table1TableAdapter()
            Me.TableAdapterManager = New Tabelle_in_Relazione.DataBaseTabelleDataSetTableAdapters.TableAdapterManager()
            IdLabel = New System.Windows.Forms.Label()
            CodiceRelazioneLabel = New System.Windows.Forms.Label()
            CampoT1_1Label = New System.Windows.Forms.Label()
            CampoT1_2Label = New System.Windows.Forms.Label()
            NuovoLabel = New System.Windows.Forms.Label()
            DataLabel = New System.Windows.Forms.Label()
            CType(Me.Table1BindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.Table1BindingNavigator.SuspendLayout()
            CType(Me.Table1DataGridView, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.Table1BindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.DataBaseTabelleDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'IdLabel
            '
            IdLabel.AutoSize = True
            IdLabel.Location = New System.Drawing.Point(11, 239)
            IdLabel.Name = "IdLabel"
            IdLabel.Size = New System.Drawing.Size(19, 13)
            IdLabel.TabIndex = 2
            IdLabel.Text = "Id:"
            '
            'CodiceRelazioneLabel
            '
            CodiceRelazioneLabel.AutoSize = True
            CodiceRelazioneLabel.Location = New System.Drawing.Point(11, 265)
            CodiceRelazioneLabel.Name = "CodiceRelazioneLabel"
            CodiceRelazioneLabel.Size = New System.Drawing.Size(93, 13)
            CodiceRelazioneLabel.TabIndex = 4
            CodiceRelazioneLabel.Text = "Codice Relazione:"
            '
            'CampoT1_1Label
            '
            CampoT1_1Label.AutoSize = True
            CampoT1_1Label.Location = New System.Drawing.Point(11, 291)
            CampoT1_1Label.Name = "CampoT1_1Label"
            CampoT1_1Label.Size = New System.Drawing.Size(67, 13)
            CampoT1_1Label.TabIndex = 6
            CampoT1_1Label.Text = "campo T1 1:"
            '
            'CampoT1_2Label
            '
            CampoT1_2Label.AutoSize = True
            CampoT1_2Label.Location = New System.Drawing.Point(11, 317)
            CampoT1_2Label.Name = "CampoT1_2Label"
            CampoT1_2Label.Size = New System.Drawing.Size(67, 13)
            CampoT1_2Label.TabIndex = 8
            CampoT1_2Label.Text = "campo T1 2:"
            '
            'NuovoLabel
            '
            NuovoLabel.AutoSize = True
            NuovoLabel.Location = New System.Drawing.Point(11, 343)
            NuovoLabel.Name = "NuovoLabel"
            NuovoLabel.Size = New System.Drawing.Size(42, 13)
            NuovoLabel.TabIndex = 10
            NuovoLabel.Text = "Nuovo:"
            '
            'DataLabel
            '
            DataLabel.AutoSize = True
            DataLabel.Location = New System.Drawing.Point(11, 370)
            DataLabel.Name = "DataLabel"
            DataLabel.Size = New System.Drawing.Size(33, 13)
            DataLabel.TabIndex = 12
            DataLabel.Text = "Data:"
            '
            'Table1BindingNavigator
            '
            Me.Table1BindingNavigator.AddNewItem = Me.BindingNavigatorAddNewItem
            Me.Table1BindingNavigator.BindingSource = Me.Table1BindingSource
            Me.Table1BindingNavigator.CountItem = Me.BindingNavigatorCountItem
            Me.Table1BindingNavigator.DeleteItem = Me.BindingNavigatorDeleteItem
            Me.Table1BindingNavigator.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BindingNavigatorMoveFirstItem, Me.BindingNavigatorMovePreviousItem, Me.BindingNavigatorSeparator, Me.BindingNavigatorPositionItem, Me.BindingNavigatorCountItem, Me.BindingNavigatorSeparator1, Me.BindingNavigatorMoveNextItem, Me.BindingNavigatorMoveLastItem, Me.BindingNavigatorSeparator2, Me.BindingNavigatorAddNewItem, Me.BindingNavigatorDeleteItem, Me.Table1BindingNavigatorSaveItem})
            Me.Table1BindingNavigator.Location = New System.Drawing.Point(0, 0)
            Me.Table1BindingNavigator.MoveFirstItem = Me.BindingNavigatorMoveFirstItem
            Me.Table1BindingNavigator.MoveLastItem = Me.BindingNavigatorMoveLastItem
            Me.Table1BindingNavigator.MoveNextItem = Me.BindingNavigatorMoveNextItem
            Me.Table1BindingNavigator.MovePreviousItem = Me.BindingNavigatorMovePreviousItem
            Me.Table1BindingNavigator.Name = "Table1BindingNavigator"
            Me.Table1BindingNavigator.PositionItem = Me.BindingNavigatorPositionItem
            Me.Table1BindingNavigator.Size = New System.Drawing.Size(749, 25)
            Me.Table1BindingNavigator.TabIndex = 0
            Me.Table1BindingNavigator.Text = "BindingNavigator1"
            '
            'BindingNavigatorAddNewItem
            '
            Me.BindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorAddNewItem.Image = CType(resources.GetObject("BindingNavigatorAddNewItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorAddNewItem.Name = "BindingNavigatorAddNewItem"
            Me.BindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorAddNewItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorAddNewItem.Text = "Aggiungi nuovo"
            '
            'BindingNavigatorCountItem
            '
            Me.BindingNavigatorCountItem.Name = "BindingNavigatorCountItem"
            Me.BindingNavigatorCountItem.Size = New System.Drawing.Size(34, 22)
            Me.BindingNavigatorCountItem.Text = "di {0}"
            Me.BindingNavigatorCountItem.ToolTipText = "Numero totale di elementi"
            '
            'BindingNavigatorDeleteItem
            '
            Me.BindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorDeleteItem.Image = CType(resources.GetObject("BindingNavigatorDeleteItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorDeleteItem.Name = "BindingNavigatorDeleteItem"
            Me.BindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorDeleteItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorDeleteItem.Text = "Elimina"
            '
            'BindingNavigatorMoveFirstItem
            '
            Me.BindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("BindingNavigatorMoveFirstItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorMoveFirstItem.Name = "BindingNavigatorMoveFirstItem"
            Me.BindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorMoveFirstItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorMoveFirstItem.Text = "Sposta in prima posizione"
            '
            'BindingNavigatorMovePreviousItem
            '
            Me.BindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("BindingNavigatorMovePreviousItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorMovePreviousItem.Name = "BindingNavigatorMovePreviousItem"
            Me.BindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorMovePreviousItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorMovePreviousItem.Text = "Sposta indietro"
            '
            'BindingNavigatorSeparator
            '
            Me.BindingNavigatorSeparator.Name = "BindingNavigatorSeparator"
            Me.BindingNavigatorSeparator.Size = New System.Drawing.Size(6, 25)
            '
            'BindingNavigatorPositionItem
            '
            Me.BindingNavigatorPositionItem.AccessibleName = "Posizione"
            Me.BindingNavigatorPositionItem.AutoSize = False
            Me.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem"
            Me.BindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 23)
            Me.BindingNavigatorPositionItem.Text = "0"
            Me.BindingNavigatorPositionItem.ToolTipText = "Posizione corrente"
            '
            'BindingNavigatorSeparator1
            '
            Me.BindingNavigatorSeparator1.Name = "BindingNavigatorSeparator1"
            Me.BindingNavigatorSeparator1.Size = New System.Drawing.Size(6, 25)
            '
            'BindingNavigatorMoveNextItem
            '
            Me.BindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorMoveNextItem.Image = CType(resources.GetObject("BindingNavigatorMoveNextItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorMoveNextItem.Name = "BindingNavigatorMoveNextItem"
            Me.BindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorMoveNextItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorMoveNextItem.Text = "Sposta avanti"
            '
            'BindingNavigatorMoveLastItem
            '
            Me.BindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.BindingNavigatorMoveLastItem.Image = CType(resources.GetObject("BindingNavigatorMoveLastItem.Image"), System.Drawing.Image)
            Me.BindingNavigatorMoveLastItem.Name = "BindingNavigatorMoveLastItem"
            Me.BindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = True
            Me.BindingNavigatorMoveLastItem.Size = New System.Drawing.Size(23, 22)
            Me.BindingNavigatorMoveLastItem.Text = "Sposta in ultima posizione"
            '
            'BindingNavigatorSeparator2
            '
            Me.BindingNavigatorSeparator2.Name = "BindingNavigatorSeparator2"
            Me.BindingNavigatorSeparator2.Size = New System.Drawing.Size(6, 25)
            '
            'Table1BindingNavigatorSaveItem
            '
            Me.Table1BindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.Table1BindingNavigatorSaveItem.Image = CType(resources.GetObject("Table1BindingNavigatorSaveItem.Image"), System.Drawing.Image)
            Me.Table1BindingNavigatorSaveItem.Name = "Table1BindingNavigatorSaveItem"
            Me.Table1BindingNavigatorSaveItem.Size = New System.Drawing.Size(23, 22)
            Me.Table1BindingNavigatorSaveItem.Text = "Salva dati"
            '
            'Table1DataGridView
            '
            Me.Table1DataGridView.AllowUserToOrderColumns = True
            Me.Table1DataGridView.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.Table1DataGridView.AutoGenerateColumns = False
            Me.Table1DataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.Table1DataGridView.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.DataGridViewTextBoxColumn1, Me.DataGridViewTextBoxColumn2, Me.DataGridViewTextBoxColumn3, Me.DataGridViewTextBoxColumn4, Me.DataGridViewTextBoxColumn5, Me.DataGridViewTextBoxColumn6})
            Me.Table1DataGridView.DataSource = Me.Table1BindingSource
            Me.Table1DataGridView.Location = New System.Drawing.Point(0, 28)
            Me.Table1DataGridView.Name = "Table1DataGridView"
            Me.Table1DataGridView.ReadOnly = True
            Me.Table1DataGridView.Size = New System.Drawing.Size(749, 202)
            Me.Table1DataGridView.TabIndex = 7
            '
            'IdTextBox
            '
            Me.IdTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "Id", True))
            Me.IdTextBox.Location = New System.Drawing.Point(110, 236)
            Me.IdTextBox.Name = "IdTextBox"
            Me.IdTextBox.ReadOnly = True
            Me.IdTextBox.Size = New System.Drawing.Size(200, 20)
            Me.IdTextBox.TabIndex = 6
            '
            'CodiceRelazioneTextBox
            '
            Me.CodiceRelazioneTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "CodiceRelazione", True))
            Me.CodiceRelazioneTextBox.Location = New System.Drawing.Point(110, 262)
            Me.CodiceRelazioneTextBox.MaxLength = 10
            Me.CodiceRelazioneTextBox.Name = "CodiceRelazioneTextBox"
            Me.CodiceRelazioneTextBox.Size = New System.Drawing.Size(200, 20)
            Me.CodiceRelazioneTextBox.TabIndex = 1
            '
            'CampoT1_1TextBox
            '
            Me.CampoT1_1TextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "campoT1_1", True))
            Me.CampoT1_1TextBox.Location = New System.Drawing.Point(110, 288)
            Me.CampoT1_1TextBox.MaxLength = 10
            Me.CampoT1_1TextBox.Name = "CampoT1_1TextBox"
            Me.CampoT1_1TextBox.Size = New System.Drawing.Size(200, 20)
            Me.CampoT1_1TextBox.TabIndex = 2
            '
            'CampoT1_2TextBox
            '
            Me.CampoT1_2TextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "campoT1_2", True))
            Me.CampoT1_2TextBox.Location = New System.Drawing.Point(110, 314)
            Me.CampoT1_2TextBox.MaxLength = 10
            Me.CampoT1_2TextBox.Name = "CampoT1_2TextBox"
            Me.CampoT1_2TextBox.Size = New System.Drawing.Size(200, 20)
            Me.CampoT1_2TextBox.TabIndex = 3
            '
            'NuovoTextBox
            '
            Me.NuovoTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "Nuovo", True))
            Me.NuovoTextBox.Location = New System.Drawing.Point(110, 340)
            Me.NuovoTextBox.MaxLength = 10
            Me.NuovoTextBox.Name = "NuovoTextBox"
            Me.NuovoTextBox.Size = New System.Drawing.Size(200, 20)
            Me.NuovoTextBox.TabIndex = 4
            '
            'DataDateTimePicker
            '
            Me.DataDateTimePicker.CustomFormat = "dd,MM,yyyy"
            Me.DataDateTimePicker.DataBindings.Add(New System.Windows.Forms.Binding("Value", Me.Table1BindingSource, "Data", True))
            Me.DataDateTimePicker.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.Table1BindingSource, "Data", True))
            Me.DataDateTimePicker.Location = New System.Drawing.Point(110, 366)
            Me.DataDateTimePicker.Name = "DataDateTimePicker"
            Me.DataDateTimePicker.Size = New System.Drawing.Size(200, 20)
            Me.DataDateTimePicker.TabIndex = 5
            Me.DataDateTimePicker.Value = New Date(2016, 2, 28, 9, 31, 17, 0)
            '
            'Table1BindingSource
            '
            Me.Table1BindingSource.DataMember = "Table1"
            Me.Table1BindingSource.DataSource = Me.DataBaseTabelleDataSet
            '
            'DataBaseTabelleDataSet
            '
            Me.DataBaseTabelleDataSet.DataSetName = "DataBaseTabelleDataSet"
            Me.DataBaseTabelleDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
            '
            'DataGridViewTextBoxColumn1
            '
            Me.DataGridViewTextBoxColumn1.DataPropertyName = "Id"
            Me.DataGridViewTextBoxColumn1.HeaderText = "Id"
            Me.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"
            Me.DataGridViewTextBoxColumn1.ReadOnly = True
            '
            'DataGridViewTextBoxColumn2
            '
            Me.DataGridViewTextBoxColumn2.DataPropertyName = "CodiceRelazione"
            Me.DataGridViewTextBoxColumn2.HeaderText = "CodiceRelazione"
            Me.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"
            '
            'DataGridViewTextBoxColumn3
            '
            Me.DataGridViewTextBoxColumn3.DataPropertyName = "campoT1_1"
            Me.DataGridViewTextBoxColumn3.HeaderText = "campoT1_1"
            Me.DataGridViewTextBoxColumn3.Name = "DataGridViewTextBoxColumn3"
            '
            'DataGridViewTextBoxColumn4
            '
            Me.DataGridViewTextBoxColumn4.DataPropertyName = "campoT1_2"
            Me.DataGridViewTextBoxColumn4.HeaderText = "campoT1_2"
            Me.DataGridViewTextBoxColumn4.Name = "DataGridViewTextBoxColumn4"
            '
            'DataGridViewTextBoxColumn5
            '
            Me.DataGridViewTextBoxColumn5.DataPropertyName = "Nuovo"
            Me.DataGridViewTextBoxColumn5.HeaderText = "Nuovo"
            Me.DataGridViewTextBoxColumn5.Name = "DataGridViewTextBoxColumn5"
            '
            'DataGridViewTextBoxColumn6
            '
            Me.DataGridViewTextBoxColumn6.DataPropertyName = "Data"
            Me.DataGridViewTextBoxColumn6.HeaderText = "Data"
            Me.DataGridViewTextBoxColumn6.Name = "DataGridViewTextBoxColumn6"
            '
            'Table1TableAdapter
            '
            Me.Table1TableAdapter.ClearBeforeFill = True
            '
            'TableAdapterManager
            '
            Me.TableAdapterManager.BackupDataSetBeforeUpdate = False
            Me.TableAdapterManager.Table1TableAdapter = Me.Table1TableAdapter
            Me.TableAdapterManager.UpdateOrder = Tabelle_in_Relazione.DataBaseTabelleDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(749, 429)
            Me.Controls.Add(IdLabel)
            Me.Controls.Add(Me.IdTextBox)
            Me.Controls.Add(CodiceRelazioneLabel)
            Me.Controls.Add(Me.CodiceRelazioneTextBox)
            Me.Controls.Add(CampoT1_1Label)
            Me.Controls.Add(Me.CampoT1_1TextBox)
            Me.Controls.Add(CampoT1_2Label)
            Me.Controls.Add(Me.CampoT1_2TextBox)
            Me.Controls.Add(NuovoLabel)
            Me.Controls.Add(Me.NuovoTextBox)
            Me.Controls.Add(DataLabel)
            Me.Controls.Add(Me.DataDateTimePicker)
            Me.Controls.Add(Me.Table1DataGridView)
            Me.Controls.Add(Me.Table1BindingNavigator)
            Me.Name = "Form1"
            Me.Text = "Form1"
            CType(Me.Table1BindingNavigator, System.ComponentModel.ISupportInitialize).EndInit()
            Me.Table1BindingNavigator.ResumeLayout(False)
            Me.Table1BindingNavigator.PerformLayout()
            CType(Me.Table1DataGridView, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.Table1BindingSource, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.DataBaseTabelleDataSet, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
            Me.PerformLayout()
    
        End Sub
        Friend WithEvents DataBaseTabelleDataSet As Tabelle_in_Relazione.DataBaseTabelleDataSet
        Friend WithEvents Table1BindingSource As System.Windows.Forms.BindingSource
        Friend WithEvents Table1TableAdapter As Tabelle_in_Relazione.DataBaseTabelleDataSetTableAdapters.Table1TableAdapter
        Friend WithEvents TableAdapterManager As Tabelle_in_Relazione.DataBaseTabelleDataSetTableAdapters.TableAdapterManager
        Friend WithEvents Table1BindingNavigator As System.Windows.Forms.BindingNavigator
        Friend WithEvents BindingNavigatorAddNewItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorCountItem As System.Windows.Forms.ToolStripLabel
        Friend WithEvents BindingNavigatorDeleteItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorMoveFirstItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorMovePreviousItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorSeparator As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents BindingNavigatorPositionItem As System.Windows.Forms.ToolStripTextBox
        Friend WithEvents BindingNavigatorSeparator1 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents BindingNavigatorMoveNextItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorMoveLastItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents BindingNavigatorSeparator2 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents Table1BindingNavigatorSaveItem As System.Windows.Forms.ToolStripButton
        Friend WithEvents Table1DataGridView As System.Windows.Forms.DataGridView
        Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents DataGridViewTextBoxColumn2 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents DataGridViewTextBoxColumn3 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents DataGridViewTextBoxColumn4 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents DataGridViewTextBoxColumn5 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents DataGridViewTextBoxColumn6 As System.Windows.Forms.DataGridViewTextBoxColumn
        Friend WithEvents IdTextBox As System.Windows.Forms.TextBox
        Friend WithEvents CodiceRelazioneTextBox As System.Windows.Forms.TextBox
        Friend WithEvents CampoT1_1TextBox As System.Windows.Forms.TextBox
        Friend WithEvents CampoT1_2TextBox As System.Windows.Forms.TextBox
        Friend WithEvents NuovoTextBox As System.Windows.Forms.TextBox
        Friend WithEvents DataDateTimePicker As System.Windows.Forms.DateTimePicker
    
    End Class
    

    eccolo..

    domenica 28 febbraio 2016 13:11
  • Quello del progetto di prova dovrebbe essere più corto.
    domenica 28 febbraio 2016 13:19
  • Questo è quello che mi dà....

    non saprei che dirti.. :-)

    Forse perchè non c'è solo la casella della data...ma altre textbox
    • Modificato Guido.G domenica 28 febbraio 2016 13:35 correzione
    domenica 28 febbraio 2016 13:34
  • Questo è quello che mi dà....

    non saprei che dirti.. :-)

    Forse perchè non c'è solo la casella della data...ma altre textbox

    Dicevo che avresti potuto postare il file del progetto di prova, che sarebbe stato più corto.

    Comunque, prova a vedere se il problema dovesse avere a che fare con il fatto che non è previsto un campo "vuoto" per le date.

    domenica 28 febbraio 2016 13:48
  • questa l'impostazione della cella data:

    domenica 28 febbraio 2016 13:54
  • Non so se il Picker è in grado di risolvere il DBNull.
    domenica 28 febbraio 2016 14:00
  • ma se non è in grado non dovrebbe dare un errore..una segnalazione...
    domenica 28 febbraio 2016 14:04
  • ma se non è in grado non dovrebbe dare un errore..una segnalazione...

    Non potendo riprodurre la cosa, sto facendo ipotesi.

    Se fosse così e non desse segnalazione, potrebbe essere perchè intercetta un'eventuale eccezione e si comporta di default.

    domenica 28 febbraio 2016 14:28
  • Ok...mi sembra che da questa ultima cosa sia difficile levarci le gambe, mentre per il discorso iniziale del problema direi che va bene il sistema che ho trovato...impostare il txt da DataBinding->Advanced e impostare il riferimento, ed uguale per il value...
    domenica 28 febbraio 2016 14:32
  • Al database non potresti dare una data di default invece che fargli accettare il null?
    domenica 28 febbraio 2016 14:48
  • perdonami...ma non ho capito cosa vuoi dire...
    domenica 28 febbraio 2016 15:22
  • perdonami...ma non ho capito cosa vuoi dire...

    Quando definisci il database, alla colonna con la data potresti dire che deve avere una data di default, invece che fargliela lasciare vuota.
    domenica 28 febbraio 2016 16:01
  • Dunque per Bluled, forse intendi impostare questo?

    se è questo, il mio scarso sapere...non so cosa dovrei scrivere ... :-(

    Mentre per Paperoga ho provato a inserire la riga di codice che mi hai scritto, correggendo come indicato, tolto il riferimento in Advenced alla txt e funziona, come creo il nuovo record mi inserisce subito la data corrente e quando scorro sui record modifica la data in base ai salvataggi...quindi tutto ok.

    domenica 28 febbraio 2016 16:44
  • Dunque per Bluled, forse intendi impostare questo?

    se è questo, il mio scarso sapere...non so cosa dovrei scrivere ... :-(


    Un esempio di come scrivere l'SQL sta qui:

    http://stackoverflow.com/questions/23153230/create-a-datetime-column-in-sql-server-2008-with-default-value-as-current-timest

    con la differenza che a te serve la data e non l'offset.


    • Modificato BlueLed domenica 28 febbraio 2016 16:58
    domenica 28 febbraio 2016 16:57
  • Ok...Grazie Paperoga, segnerò la tua risposta come Risposta e per BlueLed, proverò a vedere il riferimento che mi hai scritto e vedo se ci capisco qualcosa..
    domenica 28 febbraio 2016 17:07
  • per BlueLed, proverò a vedere il riferimento che mi hai scritto e vedo se ci capisco qualcosa..

    Non ti posso scrivere la sintassi esatta, perchè SqlServer non ce l'ho sotto mano, ma nel create table, per quanto riguarda la colonna della data, dovresti includere qualcosa del tipo:

       ... DATE NOT NULL DEFAULT (GETDATE())


    • Modificato BlueLed domenica 28 febbraio 2016 17:14
    domenica 28 febbraio 2016 17:14
  • Per BlueLed, ho provato ad inserire:

    

    SYSDATETIMEOFFSET()

    e:

    CURRENT_TIMESTAMP

    ma non cambia il risultato, non inserisce la data, sicuramente sbaglio io qualcosa

    domenica 28 febbraio 2016 17:19
  • Per BlueLed, ho provato ad inserire:

    

    SYSDATETIMEOFFSET()

    e:

    CURRENT_TIMESTAMP

    ma non cambia il risultato, non inserisce la data, sicuramente sbaglio io qualcosa

    Non hai letto il mio ultimo post.

    Se abbiamo detto che la data non deve essere nulla, non puoi mettere NULL devi mettere NOT NULL ed il valore di default lo puoi prendere con GETDATE.

    Questa è la cosa migliore che tu possa fare per una questione di coerenza: se usi il DB con un altro software che svilupperai, chi te lo va a ricordare che devi mettere quella linea di codice nell'AddNew?




    • Modificato BlueLed domenica 28 febbraio 2016 17:24
    domenica 28 febbraio 2016 17:23
  • effettivamente Paperoga...penso che tu abbia ragione, praticamente modificando da query mi imposterebbe comunque la data di default...giusto?
    domenica 28 febbraio 2016 17:34
  • Io però non fare in questo modo e provo a spiegare il perché.

    Decidi di inserire due record.

    Per il primo modifichi la data nel DTP al 01/01/2016 e salvi.

    Sulla tabella il programma scrive questa data perché hai cambiato a mano il suo valore nel DTP.

    Per il secondo decidi che ti va bene la stessa data e quindi non tocchi il DTP e salvi.

    Ripeto, non ho sotto mano un esempio della situazione su cui provare, ma come ho già detto, se il binding di un controllo avviene correttamente, questo non deve riflettere l'ultimo valore inserito in un'altra riga, altrimenti il binding sarebbe un mezzo-binding o come lo vuoi chiamare. Se il Picker è bindato, deve aggiornarsi correttamente con il valore del nuovo record, piuttosto che mantenere il valore precedente.

    Se poi "mantenere il valore precedente" è una cosa desiderabile allora, dovrebbe avvenire con una funzione a parte non direttamente con il binding come effetto collaterale di una mancata sincronizzazione a causa di un valore null non gestibile.




    • Modificato BlueLed domenica 28 febbraio 2016 17:49
    domenica 28 febbraio 2016 17:43
  • Ok...penso d'aver capito, grazie a tutti per la scuola, però senza offendere nessuno, segnalerei come risposta anche il modo che ho trovato impostando in Advanced, non credo che sia un errore...altrimenti mi darebbe un'eccezione...giusto?

    forse non molto corretta...ma funziona...

    che dite?

    domenica 28 febbraio 2016 17:50
  • Ok...penso d'aver capito, grazie a tutti per la scuola, però senza offendere nessuno, segnalerei come risposta anche il modo che ho trovato impostando in Advanced, non credo che sia un errore...altrimenti mi darebbe un'eccezione...giusto?

    forse non molto corretta...ma funziona...

    che dite?

    A rigor di logica questo thread presentava un problema, il fatto che il Picker non funzionasse correttamente. Se c'è un post che fa luce su questo, è quello dove ti dico che non bisogna mettere il valore null alla data. Quello sarebbe da contrassegnare (sempre a patto che qualcuno non abbia trovato un modo corretto di gestire il null, magari con un converter)

    Poi fa come vuoi, tanto chi leggerà, spero legga anche le spiegazioni oltre a vedere i bollini blu.

    domenica 28 febbraio 2016 17:57
  • Ok.... grazie mille a tutti.

    Guido

    domenica 28 febbraio 2016 18:14
  • Io non intendo dire che non si debba avere un valore di default per il campo data. Puoi anche definirlo nella creazione della tabella, ma nel programma dovresti comunque gestire lo scenario che ho descritto prima.

    Semplicemente, se si usa un controllo DTP, si rischia di scrivere una valore (quello del default sul db) diverso dal valore mostrato da DTP. L'operatore che immette i dati, insomma, vede una data sullo schermo ma il motore del db ne inserisce un altro, quello del DEFAULT.

    La mia riga nell'AddNew è tesa proprio a prevenire questa circostanza.

    Il caso è facile da replicare. Tu come lo risolveresti?

    Te l'ho già detto. Se vuoi fornire quella caratteristica, non usi il binding, ma implementi una funzione a parte. Il Picker sempre presente sul form crea confusione all'utente: così diventa anche facile che ti dimentichi di impostare una nuova data e setti quella precedente anche quando non vorresti. Almeno con una data "anche assurda" di default, è facile notare l'errore.

    Quando vuoi modificare la data, premi un pulsante che fa comparire il Picker (volendo, anche sopra la cella della Grid da aggiornare). Questo sarà precaricato con l'ultima data, se proprio vuoi questa funzione, e quando accetti la data, questa data la salvi in modo da richiamarla alla prossima selezione.



    • Modificato BlueLed domenica 28 febbraio 2016 18:37
    domenica 28 febbraio 2016 18:35
  • L'operatore che immette i dati, insomma, vede una data sullo schermo ma il motore del db ne inserisce un altro, quello del DEFAULT.

    No fattoriale!

    Se il Picker è "correttamente" in binding, anch'esso si aggiorna con la data di default dal DB, quindi l'operatore sa quello che sta inserendo e se vuole lo cambia.

    domenica 28 febbraio 2016 18:44