Destaques

Melhoria de Processos através do Programa Six Sigma... Seis Sigma (six-sigma ou σ-sigma) é um programa de melhoria de processo baseado numa metodologia de solução de problemas de cinco fases: Definição, Medição,...

Leia mais

O que é Six Sigma? Dia 30 de março 2010 haverá um seminário sobre Six Sigma aqui em Vitória oferecido pela Sucesu-ES. Como vou participar do evento achei por bem estudar um pouco sobre o...

Leia mais

Visual Studio Team System: conhecendo uma solução... Joel  Spolsky é um dos maiores nomes na área de desenvolvimento de software. Simplesmente uma referência, seja pela sua experiência profissional na Microsoft ou pela...

Leia mais

Visual Studio Team System: conhecendo uma solução... Joel  Spolsky é um dos maiores nomes na área de desenvolvimento de software. Simplesmente uma referência, seja pela sua experiência profissional na Microsoft ou pela...

Leia mais

Gerador de classes de acesso ao SQL Server em .NET Uma das grandes jogadas na programação é otimização de tempo, geração de códigos limpos e sem erros. Como quem programa é uma pessoa sujeita a erros, cansaço, falta...

Leia mais

Twitter Augusto Vespermann Rss

.NET: “You tried to assign the null value to a variable that is not a variant data type”, solucionando o problema

Postado em : 02-10-2009 | Por : Augusto Schultz | Em : Programação

1

Tenho trabalhado ultimamente em um projeto que utiliza ASP.NET. Apesar de já ter feito o curso da Microsoft S2B sei que aprendemos sobre qualquer linguagem de programação à medida que programamos nela.

Em uma oportunidade me deparei com o seguinte erro: You tried to assign the null value to a variable that is not a variant data type.

Como ainda não tinha prática com a linguagem, demorei um pouco para encontrar a solução. Conversando com outros desenvolvedores eles disseram ter passado pelo mesmo problema e também com certa dificuldade em resolver a intempérie. Por isso resolvi compartilhar com vocês a solução, espero que seja  bem útil.

Estou trabalhando com um “banco de dados” Access e ao criar um SQLDataSource temos como opção clicar em Advanced SQL Generation Options como aparece na tela abaixo:

sql_generator
Essa opção faz com que o Visual Studio (utilizo a versão 2008) gere automaticamente as strings de inserção, exclusão e alteração dos dados na tabela. O problema todo está justamente aí. Ao gerar o insert o Visual Studio informa, em sua string de inserção, que um dos parâmetros a serem informados é a chave primária. Mas como no meu caso a chave primária é autoincrement ela não deve ser informada no insert.

Para resolvermos o caso devemos procurar no código por: “InsertCommand” e retirar dali a chave primária de sua tabela. Logo depois retire “?” relativa ao parâmetro passado pela chave primária.

Minha string era assim:
InsertCommand=”INSERT INTO [tbPort] ([idTerminal], [idTerminalPort], [Berth]) VALUES (?, ?, ?)”

Corrigindo ficou assim:
InsertCommand=”INSERT INTO [tbPort] ([idTerminalPort], [Berth]) VALUES (?, ?)”

A segunda e última etapa da correção consiste em retirar da lista de parâmetros de inserção o campo da chave primária. Segue o meu exemplo:
Antes da correção:
<InsertParameters>
<asp:Parameter Name=”idTerminal” Type=”Int32″ />
<asp:Parameter Name=”idTerminalPort” Type=”Int32″ />
<asp:Parameter Name=”Berth” Type=”String” />
</InsertParameters>

Depois da correção:
<InsertParameters>
<asp:Parameter Name=”idTerminalPort” Type=”Int32″ />
<asp:Parameter Name=”Berth” Type=”String” />
</InsertParameters>

visualizações: 262
Compartilhe:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Twitter
  • Yahoo! Bookmarks
  • Live
  • RSS
  • Add to favorites
  • MSN Reporter
  • PDF
  • StumbleUpon
  • Technorati
Retweet this post

Posts Relacionados

Comentários (1)

Olá amigo, Neste momento estava pensando nisto e vc iluminou meu caminho já estava desistindo e passando via código. Foi bastante útil, como me ajudou esta informação. Grande abraço, fica na Paz do Senhor.

Deixe seu comentário