Array
(
)

Erro no metodo Insert csharp

Regis
   - 11 jun 2013

Olá a todos
Galera já tentei vários métodos de insert usando programação orientada a objetos mas todos estão retornando o mesmo erro
ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.
alguém consegue ver algum erro nesse fonte abaixo ?
Se estiver certo o problema é com meu sql ou visual estúdio eu tentei usar uma método do amigo Joel que responde aqui no fórum mas retorna sempre esse erro

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class dados
{
//fonte da classe
private const string _strCon =@"Data Source=localhost;Initial Catalog=db_CurosVS;Integrated Security=True";
private string vSql = "";
SqlConnection objCon = null;

public bool Conectar()
{
objCon = new SqlConnection(_strCon);
try
{
objCon.Open();
return true;
}
catch
{
return false;
}
finally
{
objCon.Close();
}

}
public bool DesConectar()
{
if (objCon.State != ConnectionState.Closed)
{
objCon.Close();
objCon.Dispose();
return true;
}
else
{
objCon.Dispose();
return false;
}

}
public bool Insert(ArrayList p_arrInsert)
{
vSql = " INSERT INTO CLIENTES (NOME, TELEFONE, EMAIL) VALUES (@NOME, @TELEFONE, @EMAIL)";
SqlCommand objcmd = null;
if (this.Conectar())
{
try
{
objcmd = new SqlCommand(vSql, objCon);
objcmd.Parameters.Add(new SqlParameter("@NOME", p_arrInsert[0]));
objcmd.Parameters.Add(new SqlParameter("@TELEFONE", p_arrInsert[1]));
objcmd.Parameters.Add(new SqlParameter("@EMAIL", p_arrInsert[2]));
objcmd.ExecuteNonQuery();
objcmd.Parameters.Clear();
return true;
}
catch (SqlException e)
{
throw e;
}
finally
{
this.DesConectar();
}
}
else
{
return false;
}
}
public dados()
{
}
}

fonte do webForm
protected void btnInsert_Click(object sender, EventArgs e)
{
dados dt = new dados () ;

ArrayList arr = new ArrayList() ;
dt.Conectar();
arr.Add("regis");
arr.Add("32150505");
arr.Add("Regis.faria@yahoo.com.br");
dt.Insert(arr);

}

Regis
   - 11 jun 2013

Vida de iniciante não e nada fácil. O erro é tão simples que eu fico até com vergonha de não ter percebido isso.
Eu não sou tão iniciante assim eu fui programador Delphi por 4 anos mas eu não trabalhava com orientação a objetos

Eu coloquei um linha finaly na classe de conexão ou seja eu abria e fechava a conexão no método conectar bastou remover ele e pronto

Valeu obrigado a todos

0
|
0

Joel Rodrigues
   - 11 jun 2013

Valeu, Regis.
Tópico CONCLUÍDO.

0
|
0