Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera é o seguinte!
Aprendi como criar uma conexão em C# usando o SqlDataSource que insere valores que estão em um TextBox, então criei uma Procedure no SQL2005 que insere dados em uma tabela de cliente, mas quero criar um formulário com uns 15 campos e queria que essa procedure fosse usada pra colocar os dados no BD.
Eu não faço a menor idéia de como fazer isso, alguem pode me dar uma luz?
Procedure Exemplo:
CREATE PROCEDURE ProcedureAddCliente
@Nome varchar(50),
@SobreNome varchar(50),
@Endereco varchar(50),
@Cidade varchar(50),
@Estado varchar(50),
@CEP varchar(50),
@Regiao varchar(50)
AS
BEGIN
INSERT AddCliente(Nome, SobreNome, Endereco, Cidade, Estado, CEP, Regiao)
VALUES (@Nome, @SobreNome, @Endereco, @Cidade, @Estado, @CEP, @Regiao)
END
GO
Sinceramente não entendi nada, mas vou procurar mais.
public SqlCommand Comando { get; set; }
Comando.CommandText = "stored_procedure";
Comando.Parameters.Clear();
Comando.Parameters.AddWithValue("@parametro1", "valor1");
Comando.Parameters.AddWithValue("@parametro2", "valor2");
Comando.Parameters.AddWithValue("@parametro3", "valor3");
Comando.ExecuteNonQuery();Você pode fazer assim:
Criar uma classe com o get e set assim:
class AddClienteInfo
{
#region Membros
private String _NOME;
private String _SOBRENOME;
private String _ENDERECO;
private String _CIDADE;
private String _ESTADO;
private String _CIDADE;
private String _CEP;
private String _REGIAO;
#endregion
#region Propriedades
public String NOME
{
get { return this._NOME; }
set { this._NOME = value; }
}
public String SOBRENOME
{
get { return this._SOBRENOME; }
set { this._SOBRENOME = value; }
}
#endregion
Não esquecer de terminar os metodos get e set dessa classe
}
E depois criar uma outra classe chamada AddClienteDAL e dentro dela fazer o método da procedure assim:
public void Insert(AddClienteInfo value)
{
SqlConnection conn = new SqlConnection();
try
{
conn.ConnectionString = Dados.StringDeConexao; // Essa é uma classe que contén a string de conexão
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "insere_dados";
SqlParameter pnome = new SqlParameter("@Nome", SqlDbType.NVarChar, 100); // fazer isso para todos
pnome.Value = value.NOME;
cmd.Parameters.Add(pnome);
conn.Open();
cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
new throw Exception("Servidor SQL Erro:" + ex.Number);
}
catch(Exception ex)
{
new throw Exception(ex.Message);
}
finally
{
conn.Close();
}
}
Espero ter ajudado.
Troque isso
new throw Exception("Servidor SQL Erro:" + ex.Number); por isso : throw new Exception("Servidor SQL Erro:" + ex.Number);
De uma olhada: http://www.super-cooper.com/archive/2008/08/16/executing-a-sql-server-stored-procedure-in-c/
Abraços...