Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MestreOryon

[Resolvido] Erro Update

Recommended Posts

Pessoal, esta dando erro no meu update, mas não sei o que é...

 

Obrigado!

 

using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication2
{
   public partial class Form2 : Form
   {
       #region Conexão
       SqlConnection sqlCoon = null;
       private string strCoon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Elisângela\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\bd\Funcionarios.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
       private string _Sql = string.Empty;
       string saida = "";
       string id = "";
       DateTime agora = DateTime.Now;



       #endregion

       public Form2()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           Application.Exit();

       }

       public void Form2_Load(object sender, EventArgs e)
       {

              sqlCoon = new SqlConnection(strCoon);
               sqlCoon.Open();

               _Sql = "SELECT TOP 1 [idponto], [Funcionario], [Entrada], [saida] FROM Ponto WHERE @cpf = Funcionario ORDER BY idponto DESC";
               SqlCommand cmd = new SqlCommand(_Sql, sqlCoon);
               string user = "";
               user = "41398039837";


               cmd.Parameters.Add("@cpf", SqlDbType.VarChar).Value = user;

               SqlDataReader dr = cmd.ExecuteReader();

               while (dr.Read())
               {

                   id = dr[0].ToString();
                   saida = dr[3].ToString();
               }



               lbcpf.Text = id + "-" + saida;
               if (saida == "")
               {
                   dr.Dispose();                    
                   testDB();


               }
               else
               {

                   //MessageBox.Show("Existem dados na Saída"+"-"+ agora.ToLongDateString());
                   //_Sql = "INSERT INTO Ponto, (Funcionario, Entrada) VALUES (@func, @entrada)";
                   //SqlCommand objcmd = new SqlCommand(_Sql, sqlCoon);
                   //objcmd.Parameters.Add("@func", SqlDbType.VarChar).Value = "41398039837";
                   //objcmd.Parameters.Add("@entrada", SqlDbType.VarChar).Value = DataHora.ToShortTimeString();



               }


       }

           public bool update(ArrayList p_arrupdate) {


               MessageBox.Show("Saída Vazia");

               _Sql = "UPDATE TABLE Ponto SET Saida=@saida WHERE idponto=@id";

               SqlCommand objcmd = new SqlCommand(_Sql, sqlCoon);

               objcmd.Parameters.Add(new SqlParameter("@saida", p_arrupdate[0]));
               objcmd.Parameters.Add(new SqlParameter("@id", p_arrupdate[1]));


               objcmd.ExecuteNonQuery();
               sqlCoon.Close();
               return true;

           }
               public void testDB(){



                   Update();

                   ArrayList arr = new ArrayList();
                   arr.Add(agora.ToShortTimeString());
                   arr.Add(1);



                   if (update(arr))
                   {

                       MessageBox.Show("Saída marcada com sucesso");


                   }
                   else {

                       MessageBox.Show("A Saída não foi marcada", "Erro");

                   }

               }


   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficava + facil você postar qual a msg d erro..

mas p/ adiantar, a sintaxe do comando SQL UPDATE esta´sim errada;

está assim:

"UPDATE TABLE Ponto SET Saida=@saida WHERE idponto=@id";

correto:

"UPDATE Ponto SET Saida=@saida WHERE idponto=@id";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, alem disso que eu falei no outro post Oryon.

 

Eu descobri o erro do DR. Tira o Dr.Dispose() e fecha a conexão aqui:

 

 

sqlCoon = new SqlConnection(strCoon);
               sqlCoon.Open();

               _Sql = "SELECT TOP 1 [idponto], [Funcionario], [Entrada], [saida] FROM Ponto WHERE @cpf = Funcionario ORDER BY idponto DESC";
               SqlCommand cmd = new SqlCommand(_Sql, sqlCoon);
               string user = "";
               user = "41398039837";


               cmd.Parameters.Add("@cpf", SqlDbType.VarChar).Value = user;

               SqlDataReader dr = cmd.ExecuteReader();

               while (dr.Read())
               {

                   id = dr[0].ToString();
                   saida = dr[3].ToString();
               }

               //Fecha a conexão
               sqlcoon.Close();

               lbcpf.Text = id + "-" + saida;
               if (saida == "")
               {

                   testDB();


               }

 

 

É imprescindível que o Sqlcoon.Close() apareça sempre no final, ou no meio, ele TEM de ser executado.

 

Do resto fica igual:

 

 

public bool update(ArrayList p_arrupdate) {


               MessageBox.Show("Saída Vazia");

               _Sql = "UPDATE TABLE Ponto SET Saida=@saida WHERE idponto=@id";

               SqlCommand objcmd = new SqlCommand(_Sql, sqlCoon);

               objcmd.Parameters.Add(new SqlParameter("@saida", p_arrupdate[0]));
               objcmd.Parameters.Add(new SqlParameter("@id", p_arrupdate[1]));


               objcmd.ExecuteNonQuery();
               sqlCoon.Close();
               return true;

           }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é erro na conexão com o Sql Server, será que seu servidor esta aguentando? Será que sua aplicação abre muitas conexões e derruba o servidor?

 

Basta ler a mensagem. Seu servidor esta inacessível.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, descobri o erro! era conexão mesmo... eu fiz uma bagunça... então criei uma classe só de conexão e ta funcionando legal! Obrigado a todos que me ajudaram e principalmente para o Khaos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.