Insert em c# em POO com sql
No meu caso eu tenho uma classe de ligação ao meu banco de dados do sql, chamada conexãoBD. E tenho também uma classe chamada clientes, no qual tem todas as minhas variáveis da tabela cliente, no banco.
Para fazer o insert vamos precisar das seguintes using: System.Data.SqlClient; System.Data;
A minha classe de liganção com BD e que irá realizar todos os comandos sql sobre cliente. Dei o nome de DALClientes no qual tem como pai a classe de conexãoBD.
É preciso declarar a classe cliente: Cliente cliente;
Embaixo iremos fazer um com comando Insert normal, basta seguir o exemplo abaixo. Vamos passar por parametro cada dado que esta em values, certo?
SqlException: Ocorreu uma exceção ao executar o comando em uma linha bloqueada. Essa exceção não é gerada quando você estiver usando o Microsoft. NET Framework versão 1.0.
Um tempo limite ocorreu durante uma operação de streaming. Para mais informações sobre streaming, ver suporte para streaming SqlClient .
Você pode usar o ExecuteNonQuery para executar operações de catálogo (por exemplo, consultando a estrutura de um banco de dados ou a criação de objetos de banco de dados como tabelas), ou para alterar os dados em um banco de dados sem usar um DataSet , executando UPDATE, INSERT ou DELETE.
Embora o ExecuteNonQuery não retorna linhas, todos os parâmetros de saída ou retornar valores mapeados para os parâmetros são preenchidos com dados.
Há no exemplo abaixo eu estou fazendo uma verificação se o banco está ou não conectado. Lembrando que existem várias maneiras de programar.
Acredito que meu código esteja bem facil o entendimento. Dúvidas? Poste comentário ou enviei email.
class DALClientes : conexaoBD
{
Cliente cliente;
public bool InsertClient(Cliente cliente)
{
vsql = "INSERT INTO Clientes(nome, endereco, telefone, datNasc, email, observacoes)" + "VALUES(@nome, @endereco, @telefone, @datNasc, @email, @observacoes)";
//Definição do comando SQL
SqlCommand comando = null;
if (this.conectar())
{
try
{
comando = new SqlCommand(vsql, objConexao);
//passando o parametro para propriedade
comando.Parameters.Add(new SqlParameter("@nome", cliente.Nome));
comando.Parameters.Add(new SqlParameter("@endereco", cliente.Endereco));
comando.Parameters.Add(new SqlParameter("@telefone", cliente.Telefone));
comando.Parameters.Add(new SqlParameter("@datNasc", cliente.DatNasc));
comando.Parameters.Add(new SqlParameter("@email", cliente.Email));
comando.Parameters.Add(new SqlParameter("@observacoes", cliente.Observacoes));
comando.ExecuteNonQuery();
objConexao.Close();
return true;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
this.desconectar();
}
}
else
{
return false;
}
}
}
Clique do botão cadastrar, dá uma olhadinha como ficou.
Estou instanciando minha classe DALCLientes e Clientes. Após isto estou convertendo os campos passando das propriedades para o text.
private void btnCad_Click(object sender, EventArgs e)
{
try
{
//instanciando as Classes
DALClientes DALclientes = new DALClientes();
Cliente cliente = new Cliente();
//converter campos passando propriedades para text
cliente.Nome = Convert.ToString(this.textNome.Text);
cliente.Endereco = Convert.ToString(this.textEnd.Text);
cliente.Telefone = Convert.ToString(this.textTel.Text);
cliente.DatNasc = Convert.ToDateTime(this.textDatNasc.Text);
cliente.Email = Convert.ToString(this.textEmail.Text);
cliente.Observacoes = Convert.ToString(this.textObs.Text);
//chamando a função Insert atraves da classe DAOClientes
DALclientes.InsertClient(cliente);
MessageBox.Show("Cadastrado, com sucesso!");
}
catch (SqlException ex)
{
MessageBox.Show("Error: " + ex.Message);
}
finally
{
//LimpaCampos
LimpaCampos();
}
}
0 comentários