Erro: "A Conexão deve ser aberta para esta operação"
Boa tarde a todos,
Estou com um probleminha, criei uma Web Application com um Web Form (com um único botão), e uma classe de conexão com o banco de dados Oracle XE;
Ai no evento click do botão, instanciei a classe Conexao, chamei o metodo connection e o método inserir.
E da o seguinte erro quando chamo o evento:
"InvalidOperationException unhandled by user code" A conexão deve ser aberta para esta operação.
OBS: O erro ocorre na linha cmd.ExecuteNonQuery(); do método Inserir() na classe Conexão.
Classe de conexão + operação inserir:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Data;
namespace Sistema
{
public class Conexao
{
private static string SQL;
private static OracleConnection conn;
private static OracleCommand cmd;
private static OracleDataAdapter da;
private static DataSet ds;
public string Connection()
{
try
{
string sql = "Data Source=XE;User Id=USUARIO_Q_CONTEM_TABELA;Password=SENHA;";
conn = new OracleConnection(sql);
conn.Open();
}
catch (OracleException e)
{
return e.Message;
}
return conn.State.ToString();
}
public void Inserir()
{
Conexao cc = new Conexao();
cc.Connection();
string incluiSQL = @"insert into tbcliente (ID, NOME) values ('555', 'Eduardo')";
OracleCommand cmd = new OracleCommand(incluiSQL, conn);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
public void Fechar()
{
conn.Close();
}
}
}
Evento Click do botão.
protected void btnAdd_Click(object sender, EventArgs e)
{
Conexao cc = new Conexao();
cc.Connection();
cc.Inserir();
lblMessage.Text = "inserido!";
}
OBS: Eu tenho uma aplicação console, com o mesmo esquema, só que com um select, e funciona normalmente!
Ou seja, a conexão existe, acesso atravez do SQL Developer normalmente!
Agradeço desde já, Obrigado, abraços....
Discussão (8)
Carregando comentários...