Insert no cSharp asp.net
07/06/2013
0
agradeço desde já.
Estou tentando inserir dados em uma tabela aparentemente simples , mas sempre esta dando um erro dizendo que estou tentando inserir um campo string em um numérico.
Eu formatei todos os campos double.parse para os doubles e int.parse para int
abaixo o código
C = int.Parse(drpCliente.SelectedValue);
P = int.Parse(drpListaProduto.SelectedValue);
Q = int.Parse(txtQuantidade.Text);
V = double.Parse(txtValorUnidade.Text);
D = double.Parse(txtDesconto.Text);
T = double.Parse(txtSubtotal.Text);
string conexao = @"Data Source=caminho do meu banco mais usuario e senhas do sqlserver
SqlConnection con = new SqlConnection(conexao);
SqlCommand cmd = new SqlCommand("insert into tb_vendas (Id_cliente,id_produto,Qt_Items,Vl_item,Vl_Desconto) values ('"
+ C
+ "','" + P
+ "','" + Q
+ "','" + V
+ "','" + D
+ "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert ('Cadastro Realizado com sucesso !');</script>");
antes de usar as variaveis eu estava passando os textbox normalmente no insert into int.parse(txtquantidade.text)
Carlos Faria
Posts
08/06/2013
Pjava
public void insereTriagem(Int32 idrecurso, Int32 tipoDoc, string numDoc, Int32 ramo, string obrigacao, string nm_autor, string cpfAutor,
string observacao,DateTime dtcadastro, string tarefa, DateTime dtprazo, string nmArea, string outroDoc)
{
try
{
conexao.ConnectionString = ConfigurationManager.ConnectionStrings["connJuridico"].ConnectionString;
conexao.Open();
string sql = "insert into tbl_Triagem (id_recurso,id_tipo_documento,num_doc,id_ramo,obrigacao,nm_autor,cpf_autor,obs,dt_cadastro,tarefa,dt_prazo_tarefa,nm_area,outro_tipo_doc) values " +
"(@recurso,@tipo_doc,@numdoc,@idramo,@obrigacao,@nomeautor,@cpfautor,@observacao,@dtcadastro,@tarefa,@dtprazotarefa,@nmarea,@outrotipodoc)";
cmd.CommandText = sql;
cmd.Connection = conexao;
cmd.Parameters.AddWithValue("recurso", idrecurso);
cmd.Parameters.AddWithValue("tipo_doc", tipoDoc);
cmd.Parameters.AddWithValue("numdoc", numDoc);
cmd.Parameters.AddWithValue("idramo", ramo);
cmd.Parameters.AddWithValue("obrigacao", obrigacao);
cmd.Parameters.AddWithValue("nomeautor", nm_autor.Trim());
cmd.Parameters.AddWithValue("cpfautor", cpfAutor);
cmd.Parameters.AddWithValue("observacao", observacao);
cmd.Parameters.AddWithValue("dtcadastro", dtcadastro);
cmd.Parameters.AddWithValue("tarefa", tarefa);
cmd.Parameters.AddWithValue("dtprazotarefa", dtprazo);
cmd.Parameters.AddWithValue("nmarea", nmArea.Trim());
cmd.Parameters.AddWithValue("outrotipodoc", outroDoc);
cmd.ExecuteNonQuery();
}
finally
{
cmd.Dispose();
cmd = null;
conexao.Close();
conexao = null;
}
}
08/06/2013
Carlos Faria
Mas seria mais fácil eu ter a procure insert tb no sqlserver e já passar direto , vc teria um exemplo de como fazer isso ?
09/06/2013
Joel Rodrigues
10/06/2013
Carlos Faria
me mostra um exemplo de dois campos somente
id int
nome varchar
10/06/2013
Joel Rodrigues
Cliente cli = new Cliente(); cli.Id = Conerto.ToInt32(txtID.Text); cli.Nome = txtNome.Text; clu.Inserir();
10/06/2013
Carlos Faria
Código do form
cliente ins = new cliente();
ins.Nome = txtNome.Text;
ins.Telefone = txtTelefone.Text;
ins.Email = txtMail.Text;
ins.Inserir();
//Aqui o fonte da classe
public void Inserir()
{
comando.CommandText = "INSERIR_CLIENTES";
comando.Parameters.Clear();
SqlParameter parcodigo = new SqlParameter("CODIGO", SqlDbType.Int);
parcodigo.Direction = ParameterDirection.Output;
comando.Parameters.AddWithValue("NOME", this.nome);
comando.Parameters.AddWithValue("TELEFONE", this.telefone);
comando.Parameters.AddWithValue("EMAIL", this.email);
try
{
_conexao.Open();
comando.ExecuteNonQuery();
this.codigo = Convert.ToInt32(parcodigo.Value);
//Após executar o comando, recuperamos o valor do parâmetro @CODIGO
_conexao.Close();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
ao debugar eu cheguei no seguinte erro
Object reference not set to an instance of an object.
o debug para no try
conexao.open ;
10/06/2013
Joel Rodrigues
10/06/2013
Carlos Faria
Esse é o codigo do botaoinserir do form
cliente ins = new cliente();
ins.Codigo = int.Parse(txtcodigo.Text);
ins.Nome = txtNome.Text;
ins.Telefone = txtTelefone.Text;
ins.Email = txtMail.Text;
ins.Conexao.Open();
ins.Inserir();
ins.Conexao.Close();
Eu tentei de tudo cara não consegui solucionar
10/06/2013
Carlos Faria
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class cliente
{
#region String de conexao com banco de dados
private string _str_Caminho = @"Data Source=meubanco;Initial Catalog=db_visual_studio;Persist Security Info=True;User ID=marco_tulio;Password=senha";
private SqlConnection _ObjCon;
private SqlCommand comando = new SqlCommand();
public string abreConecao()
{
this._ObjCon = new SqlConnection(_str_Caminho);
string retornoCnn;
try
{
this._ObjCon.Open();
retornoCnn = "Ok ";
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
this._ObjCon.Close();
}
return retornoCnn;
}
#endregion
#region Gets and Sets
private int codigo;
private string nome;
private string telefone;
private string email;
public int Codigo
{
get { return codigo; }
set { codigo = value; }
}
public string Nome
{
get { return nome; }
set { nome = value; }
}
public string Telefone
{
get { return telefone; }
set { telefone = value; }
}
public string Email
{
get { return email; }
set { email = value; }
}
#endregion
public void Inserir()
{
comando.CommandText = "INSERIR_CLIENTES";
comando.Parameters.Clear();
SqlParameter parcodigo = new SqlParameter("CODIGO", SqlDbType.Int);
parcodigo.Direction = ParameterDirection.Output;
comando.Parameters.AddWithValue("NOME", this.nome);
comando.Parameters.AddWithValue("TELEFONE", this.telefone);
comando.Parameters.AddWithValue("EMAIL", this.email);
try
{
_ObjCon.Open();
comando.ExecuteNonQuery();
this.codigo = Convert.ToInt32(parcodigo.Value);
//Após executar o comando, recuperamos o valor do parâmetro @CODIGO
_ObjCon.Close();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
//metodo alterar da classe cliente
public void Alterar()
{
comando.CommandText = "ALTERAR_CLIENTES";
comando.Parameters.Clear();
comando.Parameters.AddWithValue("CODIGO", this.codigo);
comando.Parameters.AddWithValue("NOME", this.nome);
comando.Parameters.AddWithValue("TELEFONE", this.telefone);
comando.Parameters.AddWithValue("EMAIL", this.email);
try
{
_ObjCon.Open();
comando.ExecuteNonQuery();
_ObjCon.Close();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
/*
//Metodo excluir da classe cliente
public static void Excluir()
{
comando.CommandText = "EXCLUIR_CLIENTES";
comando.Parameters.Clear();
comando.Parameters.AddWithValue("CODIGO", this.codigo);
try
{
conexao.Open();
comando.ExecuteNonQuery();
conexao.Close();
}
catch(SqlException ex)
{
throw new Exception(ex.Message);
}
}
//Método Consultar da classe clinte
public static List<cliente> Consultar(int tipo, string valor)
{
comando.CommandText = "CONSULTAR_CLIENTE";
comando.Parameters.Clear();
comando.Parameters.AddWithValue("TIPO", tipo);
comando.Parameters.AddWithValue("VALOR", valor);
List<Cliente> resultado = new List<Cliente>();
try
{
conexao.Open();
SqlDataReader reader = comando.ExecuteReader();
if(reader.HasRows)
{
while(reader.Read())
{
Cliente cli = new Cliente()
{
Codigo = Convert.ToInt32(reader["CODIGO"]),
Nome = reader["NOME"].ToString(),
Telefone = reader["TELEFONE"].ToString(),
Email = reader["EMAIL"].ToString()
}
}
}
conexao.Close();
}
return resultado;
}
*/
public cliente()
{
}
}
10/06/2013
Joel Rodrigues
10/06/2013
Carlos Faria
//codigo da classe
public void Inserir()
{
abreConecao(); //--Como voce sugeriu
comando.CommandText = "INSERIR_CLIENTES";
comando.Parameters.Clear();
SqlParameter parcodigo = new SqlParameter("CODIGO", SqlDbType.Int);
parcodigo.Direction = ParameterDirection.Output;
comando.Parameters.AddWithValue("NOME", this.nome);
comando.Parameters.AddWithValue("TELEFONE", this.telefone);
comando.Parameters.AddWithValue("EMAIL", this.email);
_ObjCon.Close();
try
{
_ObjCon.Open();
comando.ExecuteNonQuery();
this.codigo = Convert.ToInt32(parcodigo.Value);
//Após executar o comando, recuperamos o valor do parâmetro @CODIGO
_ObjCon.Close();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
codigo do form
cliente ins = new cliente();
ins.Codigo = int.Parse(txtcodigo.Text);
ins.Nome = txtNome.Text;
ins.Telefone = txtTelefone.Text;
ins.Email = txtMail.Text;
ins.Inserir();
o debug para
commando.executeNomQuery() e informa esse erro ExecuteNonQuery: Connection property has not been initialized.
10/06/2013
Carlos Faria
Clique aqui para fazer login e interagir na Comunidade :)