Erro “Não é possível alterar o tipo de dados de uma coluna quando ela contém dados” no Visual Studio 2005 DataSet Designer
-
09-06-2019 - |
Pergunta
Eu tenho um DataSet no VisualStudio 2005.Preciso alterar o tipo de dados de uma coluna em uma das tabelas de dados de System.Int32
para System.Decimal
.Quando tento alterar o tipo de dados no DataSet Designer
Recebo o seguinte erro:
O valor da propriedade não é válido.Não é possível alterar o tipo de dados de uma coluna depois de ter dados.
Pelo que entendi, isso deveria alterar o tipo de dados no esquema do DataSet.Não vejo como pode haver dados para causar esse erro.
Alguém tem alguma idéia?
Solução
Recebo o mesmo erro, mas apenas para colunas com seu DefaultValue
definido para qualquer valor (exceto o padrão <DBNull>
).Então, a maneira como resolvi esse problema foi:
- Valor padrão da coluna:Digitar
<DBNull>
- Salve e reabra o conjunto de dados
Outras dicas
Como as tabelas de dados preenchidas não apresentam alterações no esquema, uma solução alternativa pode ser aplicada da seguinte forma:
Faça uma nova tabela de dados
Use o método clone da Datatable para criar o Datatable com a mesma estrutura e fazer alterações nessa coluna
No final, use o método Importrow da Datatable para preenchê -lo com dados.
HTH
Eu encontrei uma solução alternativa.Se eu excluir a coluna de dados e adicioná-la novamente com o tipo de dados diferente, ela funcionará.
Para quem está descobrindo isso através do Google e você tem um caso um pouco diferente em que sua tabela tem dados e você adiciona uma nova coluna (como eu), se você criar a coluna e definir o tipo de dados em instruções separadas, você também obterá a mesma exceção.No entanto, se você fizer isso na mesma instrução, funcionará bem.
Então, em vez disso:
var column = myTable.Columns.Add("Column1");
column.DataType = typeof(int); //nope, exception!
Fazem isto:
var column = myTable.Columns.Add("Column1", typeof(int));