Usuário com melhor resposta
Duvida: Exception no método SQLCommnad ExecuteNonQuery();

Pergunta
-
Senhores, poderiam me ajudar com este caso?
Quero que a minha aplicação persista os dados no banco.
Gostaria de saber porque fico tomando essa Excepition. E por causa do banco?
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 System.Data.Sql;
using System.Data.SqlClient;
public partial class Cadastros_cadastrodeusuarioTAM : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
// Todas as strings utilizadas no codigo
const string conex = @"Data Source=PCT511246;Initial Catalog=TAM;Integrated Security=True";
string nome = TextBox1.Text;
string tipocliente = TextBox2.Text;
string idcorporativo = TextBox3.Text;
string status = TextBox4.Text;
string organizacao = TextBox5.Text;
string departamento = TextBox6.Text;
string telefone = TextBox7.Text;
string email = TextBox8.Text;
string site = DropDownList1.Text;
string andar = TextBox9.Text;
string connectando = "insert into TVT_PESSOAS_teste (FIRST_NAME, CLIENT_TYPE, CORPORATE_ID, PROFILE_STATUS, ORGANIZACAO, DEPARTAMENTO, PHONE_NUMBER_BUSINESS, INTERNET_EMAIL, SITE, ANDAR) VALUES (" + nome + "," + tipocliente + "," + idcorporativo + "," + status + "," + organizacao + "," + departamento + "," + telefone + "," + email + "," + site + "," + andar + ")";
SqlConnection con = new SqlConnection(conex);
SqlCommand cmmd = new SqlCommand();
if (TextBox1.Text == "")
{
Label1.Text = "Campo vazio!";
}
else
{
// cmmd.CommandText = connectando;
// Abro a conexão com o banco.
con.Open();
// Como o tipo de comando que vou fazer no banco de dados é uma inserção (insert)
//vou utilizar o método ExecuteNonQuery da classe SqlCommand.
// ExecuteNonQuery = executa declarações SQL que não retornam dados, tais como INSERT, UPDATE, DELETE e SET.
//cmmd.CommandText = "insert into TVT_PESSOAS_teste (FIRST_NAME, CLIENT_TYPE, CORPORATE_ID, PROFILE_STATUS, ORGANIZACAO, DEPARTAMENTO, PHONE_NUMBER_BUSINESS, INTERNET_EMAIL, SITE, ANDAR) VALUES (" + nome + "," + tipocliente + "," + idcorporativo + "," + status + "," + organizacao + "," + departamento + "," + telefone + "," + email + "," + site + "," + andar + ")";
cmmd.ExecuteNonQuery(); (Aqui aparece a Exception)
// Após executar o comando no banco de dados é SEMPRE necessário fechar a conexão com
// o banco de dados.
con.Close();
Label1.Text = "Cadastrado com sucesso Sucesso!";
}
}
}
Respostas
-
Helder,
Analisando o erro, vi que o seu problema é que você não esta passando o objeto de conexão para o objeto command.
Faça desta forma que irá funcionar:
SqlConnection con = new SqlConnection(conex);
SqlCommand cmmd = new SqlCommand();
cmmd.Connection = con;cmmd.CommandText = connectando;
cmmd.Connection.Open();
cmmd.ExecuteNonQuery();
- Sugerido como Resposta AndesBH quinta-feira, 27 de outubro de 2011 13:06
- Marcado como Resposta Helder Lopes - hgolive quinta-feira, 27 de outubro de 2011 13:33
Todas as Respostas
-
Ola Helder,
Pelo que vi no seu código, esta falando apenas você passar o comando SQL para o Sqlcommand
SqlCommand cmmd = new SqlCommand();
cmmd.CommandText = connectando (Esta linha esta comentada no seu código...)
cmmd.ExecuteNonQuery()
Se não for isso, posta o erro ai.
Flws.
-
Olá AndesBH.
Na verdade a linha comentada foi uma tentativa que não deu certo.
O comando está mais acima:
string connectando = "insert into TVT_PESSOAS_teste (FIRST_NAME, CLIENT_TYPE, CORPORATE_ID, PROFILE_STATUS, ORGANIZACAO, DEPARTAMENTO, PHONE_NUMBER_BUSINESS, INTERNET_EMAIL, SITE, ANDAR) VALUES (" + nome + "," + tipocliente + "," + idcorporativo + "," + status + "," + organizacao + "," + departamento + "," + telefone + "," + email + "," + site + "," + andar + ")";
Esqueci de apagar as linhas comentadas acredito que elas não são uteis nesse codigo.
Obrigado pela a anteção.
-
-
string connectando = "insert into TVT_PESSOAS_teste (FIRST_NAME, CLIENT_TYPE, CORPORATE_ID, PROFILE_STATUS, ORGANIZACAO, DEPARTAMENTO, PHONE_NUMBER_BUSINESS, INTERNET_EMAIL, SITE, ANDAR) VALUES ('" + nome + "','" + tipocliente + "','" + idcorporativo + "','" + status + "','" + organizacao + "','" + departamento + "','" + telefone + "','" + email + "','" + site + "','" + andar + "')";
cmmd.CommandText = connectando;
cmmd.Connection = con; cmmd.ExecuteNonQuery();
Tenta com esse codigo. Coloquei a Connection do comando ligado à string de conexão, e alterei o insert.
- Editado Lucas_Santos quinta-feira, 27 de outubro de 2011 11:49
-
Senhores,
Realizei o teste que o Lucas sugeriu e a Exception persiste.
Entendi que o Lucas mudou a String connectado os parâmetros de insert feito no SQL. "Que alias funcionam no SQL mesmo".
Creio que não seja isso.
O erro que me aparece é esse.
No intellissence fala que esse metodo executa comando de inserir no banco. Porém não estou conseguindo fazer.
Pesquisei na internet se existe outras possibilidades de fazer isso mais todas ou grande maioria usa esse metudo ExecuteNonQuery
Será que alguém conhece outra solução?
-
Helder,
Analisando o erro, vi que o seu problema é que você não esta passando o objeto de conexão para o objeto command.
Faça desta forma que irá funcionar:
SqlConnection con = new SqlConnection(conex);
SqlCommand cmmd = new SqlCommand();
cmmd.Connection = con;cmmd.CommandText = connectando;
cmmd.Connection.Open();
cmmd.ExecuteNonQuery();
- Sugerido como Resposta AndesBH quinta-feira, 27 de outubro de 2011 13:06
- Marcado como Resposta Helder Lopes - hgolive quinta-feira, 27 de outubro de 2011 13:33
-