Olá Pessoal, Sou iniciante em Programação e estou com um Problema que esta Fritando meu Cérebro.
Tenho uma Aplicação de “Tarefas”, seriam Tarefas de uma Gincana escolar.
Aonde eu Tenho a Seguinte Tabela no Banco:
CREATE TABLE `tarefas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nometarefa` varchar(50) NOT NULL DEFAULT '',
`dataentrega` varchar(50) NOT NULL DEFAULT '',
`imagem` blob,
`descricaotarefa` varchar(400) NOT NULL DEFAULT '',
`comentario` varchar(350) DEFAULT NULL,
`status` binary(1) NOT NULL DEFAULT '\0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;
Criei minha pagina de “Gerencia de Tarefas” no Visual Studio 2010, já instalei o Connector Mysql e fiz a Referencia do “MySql.Data.dll”.
Porém ao Tentar gravar os dados no banco é exibido a seguinte mensagem:
[code]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’ at line 2
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’ at line 2
Source Error:
Line 51:
Line 52: query.Connection = cnx;
Line 53: [color=red]res = query.ExecuteNonQuery(); // executa consulta[/color]
Line 54:
Line 55: cnx.Close();
Source File: C:\Users\Marcos Scholl\Documents\Visual Studio 2010\Projects\ProjetoGincana_\ProjetoGincana_\WebForm5.aspx.cs Line: 53
Stack Trace:
[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’ at line 2]
MySql.Data.MySqlClient.MySqlStream.ReadPacket() +293
MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId) +73
MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId) +20
MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +100
MySql.Data.MySqlClient.MySqlDataReader.NextResult() +830
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +1640
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +126
ProjetoGincana_neri.WebForm5.btnSalvar_Click(Object sender, EventArgs e) in C:\Users\Marcos Scholl\Documents\Visual Studio 2010\Projects\ProjetoGincana_\ProjetoGincana_\WebForm5.aspx.cs:53
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563[/code]
Ai na Tela aonde eu Preencheria os Campos textbox eu tenho:
[code]txtNomeTarefa // Recebe o Nome da tarefa
txtDataEntregaTarefa // Recebe uma descricao da entrega da tarefa, Ex: "Entregar até 19/08 ás 18:00"
uploadImagem // FileUpload para uma imagem da tarefa
txtDescricaoDaTarefa // Recebe a descrição da tarefa
txtComentario // Comentario sobre a tarefa
rblStatus // RadioButtonList com as Opções “Entregue” e “Não Entregue”
E os Seguintes Botões:
btnSalvar // Salva uma nova tarefa
btnExcluir // exclui uma tarefa
btnBuscar // acha tarefa pelo nome
btnEditar // edita tarefa[/code]
Esse e o code behind da Tela Gerencia Tarefas.
[code]using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using MySql.Data.MySqlClient;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
namespace ProjetoGincana_
{
public partial class WebForm5 : System.Web.UI.Page
{
string conexao = "SERVER=localhost; DATABASE=donaceleste; UID=DonaCeleste; PASSWORD=XXXXXXXX";
MySqlCommand query; // variavel para executar consulta
DataTable dados; // variavel para armazenar dados
MySqlConnection cnx; // variavel que cria conexao
MySqlDataAdapter da; // variavel para armazenar consulta
Object consulta; // variavel para armazenar consulta
int res; // variavel para armazenar valor da consulta
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSalvar_Click(object sender, EventArgs e)
{
// try
// {
if (BuscarTarefa(txtNomeTarefa.Text) == false)
{
cnx = new MySqlConnection(conexao);
cnx.Open();
query = new MySqlCommand();
query.CommandType = CommandType.Text;
query.CommandText = @"INSERT INTO tarefas(nometarefa, dataentrega, imagem, descricaotarefa, comentario, status) values
('" + txtNomeTarefa.Text + "', '" + txtDataEntregaTarefa.Text + "', '" + uploadImagem.HasFile + "','" + txtDescricaoDaTarefa.Text + "', " + txtComentario.Text + ", " + rblStatus.Text + "')";
query.Connection = cnx;
res = query.ExecuteNonQuery(); // executa consulta
cnx.Close();
if (res != 0)
{
Response.Write("<script language=javascript>");
Response.Write("alert('Tarefa Registrado com Sucesso')");
Response.Write("</script>");
}
}
else{
Response.Write("<script language=javascript>");
Response.Write("alert('Tarefa Já EXISTE')");
Response.Write("</script>");
}
/* }
catch (Exception ex) {
Response.Write(""+ex.Message);
}
*/
}
private void LimpaCamos()
{
this.txtNomeTarefa.Text = "";
this.txtDataEntregaTarefa.Text = "";
//this.uploadImagem = "";
this.txtDescricaoDaTarefa.Text = "";
this.txtComentario.Text = "";
this.rblStatus.Text = "";
}
protected void btnExcluir_Click(object sender, EventArgs e)
{
try
{
if (BuscarTarefa(txtNomeTarefa.Text) == true)
{
cnx = new MySqlConnection(conexao);
cnx.Open();
query = new MySqlCommand();
query.CommandType = CommandType.Text;
query.CommandText = "DELETE FROM tarefas WHERE nometarefa='" + txtNomeTarefa.Text + "'";
query.Connection = cnx;
res = query.ExecuteNonQuery();
cnx.Close();
if (res != 0)
{
Response.Write("<script language=javascript>");
Response.Write("alert('Tarefa Eliminada com Sucesso')");
Response.Write("</script>");
}
}
else {
Response.Write("<script language=javascript>");
Response.Write("alert('A Tarefa não Existe')");
Response.Write("</script>");
}
}
catch (Exception ex)
{
Response.Write("" + ex.Message);
}
}
protected void btnBuscar_Click(object sender, EventArgs e)
{
try
{
if (BuscarTarefa(txtNomeTarefa.Text) == true)
{
cnx = new MySqlConnection(conexao);
cnx.Open();
query = new MySqlCommand();
query.CommandType = CommandType.Text;
query.CommandText = "SELECT * FROM tarefas WHERE nometarefa='" + txtNomeTarefa.Text + "'";
query.Connection = cnx;
consulta = new object();
consulta = query.ExecuteNonQuery();
if (consulta != null)
{
dados = new DataTable();
da = new MySqlDataAdapter(query);
da.Fill(dados);
// txtPass.Text = Convert.ToString(dados.Rows[0]["password"]);
}
cnx.Close();
}
else
{
Response.Write("<script language=javascript>");
Response.Write("alert('Tarefa Já Existe no Cadastrada')");
Response.Write("</script>");
}
}
catch (Exception ex)
{
Response.Write("" + ex.Message);
}
}
public Boolean BuscarTarefa(string tarefa)
{
cnx = new MySqlConnection(conexao);
cnx.Open();
query = new MySqlCommand();
query.CommandType = CommandType.Text;
query.CommandText = "SELECT * FROM tarefas WHERE nometarefa='" + tarefa + "'";
query.Connection = cnx;
consulta = new Object();
consulta = query.ExecuteScalar(); // executa consulta
if (consulta != null)
{
return true;
// cnx.Close();
}
else
{
return false;
}
cnx.Close();
}
protected void btnEditar_Click(object sender, EventArgs e)
{
try
{
if (BuscarTarefa(txtNomeTarefa.Text) == true)
{
cnx = new MySqlConnection(conexao);
cnx.Open();
query = new MySqlCommand();
query.CommandType = CommandType.Text;
query.CommandText = @"UPDATE tarefas set (nometarefa, dataentrega, imagem, descricaotarefa, comentario, status) values
('" + txtNomeTarefa.Text + "', '" + txtDataEntregaTarefa.Text + "', '" + uploadImagem.HasFile + "','" + txtDescricaoDaTarefa.Text + "', " + txtComentario.Text + ", " + rblStatus.Text + "') WHERE nometarefa='" + txtNomeTarefa.Text + "'";
query.Connection = cnx;
res = query.ExecuteNonQuery();
// cnx.Close();
if (res != 0)
{
Response.Write("<script language=javascript>");
Response.Write("alert('Tarefa Atualizada com Sucesso')");
Response.Write("</script>");
}
}
else
{
Response.Write("<script language=javascript>");
Response.Write("alert('A Tarefa não Existe')");
Response.Write("</script>");
}
}
catch (Exception ex)
{
Response.Write("" + ex.Message);
}
}
}
}[/code]
Ja adicionei a connectionStrings no Web.confing
Alguém Saberia dizer o que estou fazendo Errado??
Acho que não estou sabendo criar a query corretamente!