PDA

View Full Version : [VBE2008] eccezione quando inserisco dati


Neo996sps
16-02-2008, 18:04
Ciao a tutti,

oggi ho installato VBE2008 e devo dire che la gestione dei DB è migliorata rispetto a VBE2005.
Per fare la prova ho creato un DB SQL Server 2008 e ci ho creato una tabella chiamata tblCliente. Ho trascinato il datagrid view nel form e ho mandato in esecuzione. Gira.
Ho preparato il codice per l'inserimento dei dati


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TblProvaTableAdapter.Fill(Me.ArchivioDataSet.tblCliente)
End Sub


ho creato il codice per il salvataggio


Private Sub btnSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalva.Click
Try
Me.Validate()
Me.TblProvaBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.ArchivioDataSet)
Catch ex As Exception
MsgBox("errore")
End Try
End Sub


e quello per l'aggiunta


Private Sub btnNuovoRecord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuovoRecord.Click
Me.TblProvaBindingSource.AddNew()
End Sub


Quando però vado ad aggiungere un record mi genera questa eccezione:

Impossibile impostare la colonna "Colore". Il valore viola il limite MaxLength della colonna.

Non ho ben capito perchè lo da, dato che attualmente tutti i campi sono impostati per ricevere 100 caratteri di tipo text. Io inoltre ho provato anche a inserire un singolo carattere per ogni campo ma continua con quel problema. Qualcuno mi sa dire di cosa si tratta?

nicom
22-02-2009, 08:27
Penso di aver trovato il problema, e sono arrivato su questo tuo post perchè ricevevo anche io un messaggio simile.

Credo che il problema sia nel tipo di campo definito nel database.

Forse hai scelto il tipo nchar [ ( n ) ] in corsivo la definizione dell'help Visual Studio

Dati Unicode di tipo carattere a lunghezza fissa contenenti n caratteri, dove n deve essere un valore compreso tra 1 e 4.000. Le dimensioni di archiviazione sono pari al doppio di n byte. I sinonimi di SQL-2003 per il tipo di dati nchar sono national char e national character.

se è così prova a modificarlo in varchar [ ( n | max ) ]

Dati di tipo carattere a lunghezza variabile non Unicode. n può essere un valore compreso tra 1 e 8.000. max indica che le dimensioni massime dello spazio di archiviazione sono 2^31-1 byte. Le dimensioni di archiviazione sono pari all'effettiva lunghezza dei dati immessi + 2 byte. La lunghezza dei dati immessi può essere uguale a 0 caratteri. I sinonimi utilizzati in SQL 2003 per varchar sono char varying o character varying.

Potrebbe andar bene anche nvarchar [ ( n | max ) ]
Dati Unicode di tipo carattere a lunghezza variabile. n può essere un valore compreso tra 1 e 4.000. max indica che la dimensione di archiviazione massima è pari a 2^31-1 byte. Le dimensioni di archiviazione, espresse in byte, sono pari al doppio del numero di caratteri immessi + 2 byte. La lunghezza dei dati immessi può essere uguale a 0 caratteri. I sinonimi di SQL-2003 per il tipo di dati nvarchar sono national char varying e national character varying.

Fammi sapere se ci ho beccato

Ciao, Nicola da Trento, anch'io