Erro ao Inserir dados no Banco SQLServer

23/08/2017

0

Bom dia pessoal!
Gostaria de uma ajuda com minha aplicação. Estou terminando meu curso técnico em Desenvolvimento de Software e estou fazendo uma aplicação desktop para meu projeto final. Quando tento incluir algum dado através da aplicação, o seguinte erro capturado no try/catch aparece: "Dados de cadeia ou binário seriam truncados. A instrução foi finalizada."

A minha tabela do banco é a seguinte:
CREATE TABLE Empresa (
empr_id INT IDENTITY (1,1),
empr_nome VARCHAR NULL,
empr_nomeFantasia VARCHAR NULL,
empr_CNPJ VARCHAR NULL,
empr_IE VARCHAR NULL,
empr_CEP VARCHAR NULL,
empr_logradouro VARCHAR NULL,
empr_endereco VARCHAR NULL,
empr_numero VARCHAR NULL,
empr_bairro VARCHAR NULL,
empr_cidade VARCHAR NULL,
empr_estado VARCHAR NULL,
empr_email VARCHAR NULL,
empr_telefone VARCHAR NULL,
empr_celular VARCHAR NULL,
PRIMARY KEY(empr_id)
);
GO

Minha classe de conexão é a seguinte:
public class DALConexao
{
//Atributos
private String stringConexao;
private SqlConnection conexao;

//Construtor
public DALConexao()
{
this.conexao = new SqlConnection();
this.StringConexao = dadosString; //String contendo os dados de conexao
this.conexao.ConnectionString = StringConexao;
}

//Métodos Especiais
public string StringConexao { get => stringConexao; set => stringConexao = value; }
public SqlConnection ObjetoConexao { get => conexao; set => conexao = value; }

//Métodos Internos
public void Conectar()
{
conexao.Open();
}

public void FecharConexao()
{
conexao.Close();
}
}


Minha classe de negócios é a seguinte:

DALConexao cx = new DALConexao();

public void Incluir(ModeloEmpresa modelo)
{
string[] campos = { modelo.Empr_nome, modelo.Empr_CNPJ, modelo.Empr_IE, modelo.Empr_CEP, modelo.Empr_logradouro, modelo.Empr_endereco, modelo.Empr_numero.ToString(), modelo.Empr_bairro, modelo.Empr_cidade, modelo.Empr_estado, modelo.Empr_email, modelo.Empr_telefone, modelo.Empr_celular };
string[] labels = { "Nome", "CNPJ", "IE", "CEP", "Logradouro", "Endereço", "Número", "Bairro", "Cidade", "Estado", "Email", "Telefone", "Celular" };

for(int i = 0; i < campos.Length; i++)
{
if(campos[i].Length == 0 || campos[i] == null)
{
throw new Exception("O campo " + labels[i] + " é obrigatório.");
}
}

DALEmpresa DAL = new DALEmpresa();
DAL.Incluir(modelo);
}


E por último minha classe de dados é a seguinte:

DALConexao cx = new DALConexao();

public void Incluir (ModeloEmpresa modelo)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cx.ObjetoConexao;
cmd.CommandText = "insert into Empresa (empr_nome, empr_nomeFantasia, empr_CNPJ, empr_IE, empr_CEP, empr_logradouro, empr_endereco, empr_numero, empr_bairro, empr_cidade, empr_estado, empr_email, empr_telefone, empr_celular) " +
"values (@nome, @nomeFantasia, @cnpj, @ie, @cep, @logradouro, @endereco, @numero, @bairro, @cidade, @estado, @email, @telefone, @celular); select @@IDENTITY";
cmd.Parameters.AddWithValue("@nome", modelo.Empr_nome);
cmd.Parameters.AddWithValue("@nomeFantasia", modelo.Empr_nome);
cmd.Parameters.AddWithValue("@cnpj", modelo.Empr_CNPJ);
cmd.Parameters.AddWithValue("@ie", modelo.Empr_IE);
cmd.Parameters.AddWithValue("@cep", modelo.Empr_CEP);
cmd.Parameters.AddWithValue("@logradouro", modelo.Empr_logradouro);
cmd.Parameters.AddWithValue("@endereco", modelo.Empr_endereco);
cmd.Parameters.AddWithValue("@numero", modelo.Empr_numero);
cmd.Parameters.AddWithValue("@bairro", modelo.Empr_bairro);
cmd.Parameters.AddWithValue("@cidade", modelo.Empr_cidade);
cmd.Parameters.AddWithValue("@estado", modelo.Empr_estado);
cmd.Parameters.AddWithValue("@email", modelo.Empr_email);
cmd.Parameters.AddWithValue("@telefone", modelo.Empr_telefone);
cmd.Parameters.AddWithValue("@celular", modelo.Empr_celular);
cx.Conectar();
modelo.Empr_id = Convert.ToInt32(cmd.ExecuteScalar());
cx.FecharConexao();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}


Desde já agradeço a ajuda de todos.
Walace Santos

Walace Santos

Responder

Post mais votado

23/08/2017

Resolvido o problema. Achei o erro!!!!

Walace Santos

Walace Santos
Responder

Mais Posts

23/08/2017

Walace Santos

OBS: Este erro acontece quando executa a seguinte linha do meu código na classe de dados:

"modelo.Empr_id = Convert.ToInt32(cmd.ExecuteScalar());"
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar