Errore "Impossibile modificare il tipo di dati di una colonna una volta che contiene dati" in Visual Studio 2005 DataSet Designer
-
09-06-2019 - |
Domanda
Ho un DataSet in VisualStudio 2005.Devo cambiare il tipo di dati di una colonna in uno dei datatables da System.Int32
A System.Decimal
.Quando provo a cambiare il tipo di dati nel file DataSet Designer
Ricevo il seguente errore:
Il valore della proprietà non è valido.Impossibile modificare il tipo di dati di una colonna una volta che ha dati.
Da quanto ho capito, questo dovrebbe cambiare il tipo di dati nello schema per DataSet.Non vedo come possano esserci dati che causano questo errore.
Qualcuno ha qualche idea?
Soluzione
Ottengo lo stesso errore ma solo per le colonne con its DefaultValue
impostato su qualsiasi valore (tranne quello predefinito <DBNull>
).Quindi il modo in cui ho risolto questo problema è stato:
- Valore predefinito colonna:Digitare
<DBNull>
- Salvare e riaprire il set di dati
Altri suggerimenti
Poiché i Datatable compilati non prevedono modifiche allo schema, è possibile applicare una soluzione alternativa come segue:
Crea un nuovo datatable
Utilizzare il metodo clone di DataTable per creare il dataTable con la stessa struttura e apportare modifiche a quella colonna
Alla fine usa il metodo ImporTrow di DataTable per popolarlo con i dati.
HTH
Ho trovato una soluzione.Se elimino la colonna dati e la aggiungo nuovamente con il tipo di dati diverso, funzionerà.
Per coloro che lo trovano tramite Google e hai un caso leggermente diverso in cui la tua tabella ha dati e aggiungi una nuova colonna (come me), se crei la colonna e imposti il tipo di dati in istruzioni separate ottieni anche la stessa eccezione.Tuttavia, se lo fai nella stessa istruzione, funziona bene.
Quindi, invece di questo:
var column = myTable.Columns.Add("Column1");
column.DataType = typeof(int); //nope, exception!
Fai questo:
var column = myTable.Columns.Add("Column1", typeof(int));