Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Vera Bastos

erro de sintaxe no INSERT INTO

Recommended Posts

Vera Bastos    0

Boa tarde, estou com um problema neste código, ele deve acessar uma banco de dados access e calcular a média do aluno com 4 notas, mas não apresenta o erro de sintaxe.

É no Visual Studio 2005 com C# e banco em Access 2003.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace recuperacao

{

public partial class Form1 : Form

{

public OleDbConnection Conexao = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" +

"Data Source = " + Application.StartupPath + @"\alunos.mdb");

public int Num_Registros;

double nota;

private bool NaoFoiNumero = false;

private bool NaoFoiLetra = false;

public Form1()

{

InitializeComponent();

}

public void inicio()

{

txt_matricula.Text = "";

cbm_aluno.SelectedIndex = -1;

Nota1.Value = 0;

Nota2.Value = 0;

Nota3.Value = 0;

Exercicio.Value = 0;

}

private void carga()

{

OleDbCommand Comando_alunos = new OleDbCommand("SELECT * FROM alunos", Conexao);

OleDbDataAdapter DA_alunos = new OleDbDataAdapter(Comando_alunos);

DataSet DS_alunos = new DataSet();

DA_alunos.Fill(DS_alunos);

cbm_aluno.DataSource = DS_alunos.Tables[0];

cbm_aluno.DisplayMember = "nome";

cbm_aluno.ValueMember = "cod_aluno";

}

private void Refreshgrade()

{

string consulta;

consulta = "SELECT cod_aluno, nome, nota1, nota2, nota3, exercicios, media from alunos";

OleDbCommand Comando = new OleDbCommand(consulta, Conexao); // Diz que o comando será executado na CONEXAO

OleDbDataAdapter DA_aluno = new OleDbDataAdapter(Comando); //Serve para estabelecer a ligação entre o DataSet e o Banco

DataSet DS_aluno = new DataSet();

DataTable Tabela;

DA_aluno.Fill(DS_aluno);

Grade.DataSource = DS_aluno.Tables[0];

Grade.ReadOnly = true;

Tabela = DS_aluno.Tables[0];

Num_Registros = Tabela.Rows.Count;

}

private void Form1_Load(object sender, EventArgs e)

{

Conexao.Open();

inicio();

carga();

Refreshgrade();

Num_Registros = 0;

}

private void button1_Click(object sender, EventArgs e)

{

int nota1 = Convert.ToInt32(Nota1.Value);

int nota2 = Convert.ToInt32(Nota2.Value);

int nota3 = Convert.ToInt32(Nota3.Value);

int exercicio = Convert.ToInt32(Convert.ToDecimal(Exercicio.Value));

nota = (((nota1 + nota2 + nota3) * 3) + exercicio) / 7;

Nota1.Value = Convert.ToInt32(nota1);

Nota2.Value = Convert.ToInt32(nota2);

Nota3.Value = Convert.ToInt32(nota3);

Exercicio.Value = Convert.ToInt32(exercicio);

string SQLComando;

try

{

//<Códigos que podem gerar erro>

// inserção

SQLComando = "INSERT INTO alunos (cod_aluno, nome, nota1, nota2, nota3, exercicios, media) VALUES ( " + txt_matricula.Text + ", '" + cbm_aluno.Text + "', " + Nota1.Value + ", " + Nota2.Value + "," + Nota3.Value + "," + Exercicio.Value + ", " + nota + ")";

// MessageBox.Show(SQLComando);

OleDbCommand ComandoCliente = new OleDbCommand(SQLComando, Conexao);

Console.WriteLine(SQLComando);

ComandoCliente.ExecuteNonQuery();

}

catch (Exception Ex)

{

//<Rotina de tratamento de erro>

MessageBox.Show(Ex.Message);

Console.WriteLine(Ex.Message);

}

}

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro passo para diagnóstico de problemas é colocar mensagens no decorrer do código para saber exatamente onde está dando erro.

Tipo:

msgbox(1)

[uma linha de comando]

msgbox(2)

[uma linha de comando]

msgbox(3)

[uma linha de comando]

msgbox(4)

...

Se exibir até a 3 é porque houve erro nessa linha abaixo da mensagem.

Verifique cada passo por vez, teste se o select está realmente funcionando e depois o restante.

coloque a variável que contém o resultado do cálculo numa message box pra ver se realmente calculou, e assim por diante.

Desculpe se as minhas dicas foram meio óbvias, mas como não sei até onde vai sua experiência tento ser o mais claro possível.

Estamos aqui pra ajudar, abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×