Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) [VB.NET]Problema ao criar um botão que adiciona coluna a u


Darkfy

Pergunta

Estou precisando criar um botão q crie uma nova coluna em uma tabela de um banco de dados access.

A principio estava tentnado criar q crie uma coluna especifica algo bem simples para dps trabalhar melhor em cima, porem estou tendo o seguinte problema agora.

Ao clicar no btão me retorna o seguinte erro no Visual Studio

"Syntax error in ALTER TABLE statement."

System.Data.OleDb.OleDbException was unhandled

Message=Syntax error in ALTER TABLE statement.

Segue a sub do botão que estou usando.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"
        OleDbCommand1.Connection = OleDbConnection1
        OleDbCommand1.CommandText = "ALTER TABLE 'teste' ADD COLUMN 'lol' text"
        OleDbConnection1.Open()
        sql = OleDbCommand1.ExecuteReader
        OleDbConnection1.Close()
        sql.Close()


End Sub

alguém tem alguma ideia do que eu posso fazer?

Muito grato.

Editado por Darkfy
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Tente assim:

OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"

OleDbCommand1.Connection = OleDbConnection1

OleDbCommand1.CommandText = "ALTER TABLE teste ADD COLUMN lol TEXT(50)"

OleDbConnection1.Open()

Dim linhasAfetadas As Integer = OleDbCommand1.ExecuteNonQuery()

OleDbConnection1.Close()

sql.Close()

:D

Link para o comentário
Compartilhar em outros sites

  • 0
Tente assim:

OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"

OleDbCommand1.Connection = OleDbConnection1

OleDbCommand1.CommandText = "ALTER TABLE teste ADD COLUMN lol TEXT(50)"

OleDbConnection1.Open()

Dim linhasAfetadas As Integer = OleDbCommand1.ExecuteNonQuery()

OleDbConnection1.Close()

sql.Close()

:D

Perfeito!

Alterei apenas a primeira linha, já havia testado usando ExecuteNonQuery, e não havia funcionado..

o erro estava mesmo na falta do parametro do text.

Muito obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0

O codigo passado, acabou não funcionando..

quando vi sua correção como disse alterei apenas a 1 linha.

OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"

OleDbCommand1.Connection = OleDbConnection1

OleDbCommand1.CommandText = "ALTER TABLE teste ADD COLUMN lol TEXT(50)"

OleDbConnection1.Open()

Dim linhasAfetadas As Integer = OleDbCommand1.ExecuteNonQuery()

OleDbConnection1.Close()

sql.Close()

Pois pensei que a segunda não seria necessario, porque o ExecuteNonQuery()se não me engano, volta o numero de linhas alteradas.. e como não estava mechendo com linhas achei q não iria funcionar..

Como respondi no tópico o erro parou, e quando eu apertava 2x o botao dava um erro q a coluna já exisita.. então acreditei q estava funcionando então parti para outras partes do programa e dps precisei voltar nele e ae percebi que na verdade a alteração não estava sendo salva na tabela...

O que esta faltando?

Quando percebi isto, tentei aleterar o codigo com a segunda linha passada ae me volto o seguinte erro.

"System.NullReferenceException was unhandled

Message=Object reference not set to an instance of an object."

Grato pela ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0
Como respondi no tópico o erro parou, e quando eu apertava 2x o botao dava um erro q a coluna já exisita.. então acreditei q estava funcionando então parti para outras partes do programa e dps precisei voltar nele e ae percebi que na verdade a alteração não estava sendo salva na tabela...

Mas isso é normal, o código esta perfeito, não é possível inserir duas colunas com o mesmo nome em uma tabela.

Tente executar este comando duas vezes em algum gerenciador que terá o mesmo erro.

Abraços...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...