Desenvolvimento Sistema Consultorio Médico C# / VS2008
- Codificando a tela de cadastro em c#
- objetivo usuário cadastrar novo cliente, pesquisar, excluir e alterar dados.
{
string conexao = "Server=PAULA-PC;Database=curso;Trusted_Connection=yes";
SqlConnection conn = new SqlConnection(conexao);
SqlCommand comm = new SqlCommand("Insert Into Cad_Cliente(Nome, Endereco, Numero, Cidade, Uf, Telefone)" +"values(@Nome, @Endereco,@Cidade, @Numero, @Uf, @Telefone)", conn);
comm.Parameters.AddWithValue("@Nome", txtNome.Text);
comm.Parameters.AddWithValue("@Endereco", txtEndereco.Text);comm.Parameters.AddWithValue("@Numero", txtNumero.Text);
comm.Parameters.AddWithValue("@Cidade", txtCidade.Text);
comm.Parameters.AddWithValue("@Uf", comboBoxUf.Text);
comm.Parameters.AddWithValue("@Telefone", txtTelefone.Text);
conn.Open();
comm.ExecuteNonQuery();conn.Close();
MessageBox.Show("Cliente salvo com Sucesso!");
Checar_Campos();
Limpar_Campos();}
private void Checar_Campos()
{if (txtNome.Text.Length == 0)
{
MessageBox.Show("Preencha campo Nome");
return;}
if (txtEndereco.Text.Length == 0)
{MessageBox.Show("Preencha campo Endereço");
return;
}
if (txtCidade.Text.Length == 0)
{MessageBox.Show("Preencha campo Cidade");
return;
}
if (txtComplemento.Text.Length == 0)
{MessageBox.Show("Preencha campo Complemento");
return;
}
if (comboBoxUf.Text.Length == 0)
{MessageBox.Show("Preencha campo UF");
return;
}
if (txtTelefone.Text.Length == 0)
{MessageBox.Show("Preencha campo Telefone");
return;
}
private void Limpar_Campos()
{{
txtNome.Text = "";
txtEndereco.Text = "";
txtNumero.Text = "";
txtCidade.Text = "";
txtComplemento.Text = "";
comboBoxUf.Text = "";
txtTelefone.Text = "";
}
}
Cadastro de Clientes em C# usando conceitos de ADO.NET – Parte 1
Veja Nesta Quick Iremos criar neste artigo um Cadastro simples de Clientes em Windows Forms usando
Olá pessoal, irei criar neste artigo um Cadastro simples de Clientes em Windows Forms usando C# e os conceitos de ADO.NET, como SqlConnection e SqlCommand. Com exceção da criação do banco e das tabelas, todo o resto será via código, desde a criação dos métodos de acesso aos dados até os métodos de inclusão, exclusão, consulta e atualização dos dados. Acompanhem:
Comece criando um novo projeto do tipo Windows Forms em C#. Dê o nome deCadastrodeClientes e clique em OK.
Agora abra o Server Explorer (CTRL + W + L), clique com o botão direito em cima de Data Connections e clique em Create New SQL Server Database.
Em Server Name, escolha o nome do seu servidor do SQL, em Log on the Server, deixe como Use Windows Authentication, dê o nome de Clientes ao seu DataBase e clique em OK.
Você verá que o database foi criado. Expanda-o, clique com o botão direito em Table e clique em Add New Table. Vamos criar a tabela de clientes como exemplo.
Vamos criar esses 8 campos como exemplo, permitindo valores nulos apenas nas duas últimas colunas.
Para entender os conceitos de ADO.NET, de início vamos criar no formulário apenas 3 botões, Inserir, Excluir e Atualizar e fazer as instruções SQL via código. Mais a frente faremos a consulta aos dados inseridos por meio do controle DataGridView, do Visual Studio. Dito isto, crie 3 botões no formulário, como mostra a imagem a seguir:
Nas propriedades dê os nomes, em Name, de btnInserir, btnExcluir e btnAtualizar. Dentro do código do botão Inserir, será necessário passar a string de conexão do banco de dados. Dica: para não ter que digitar a string na mão, abra o Server Explorer, clique com o botão direito no Database Clientes e clique em Properties. Na opção Connection String, copie e cole a string de conexão para o parâmetro do SqlConnection, como a imagem nos mostra:
Segue abaixo todo o código comentado do botão Inserir:
O código foi inteiramente comentado, mais de qualquer forma vou explicar os pontos importantes. Dentro do botão Inserir coloquei um try/catch para capturar algum erro que possa acontecer. Comecei instanciando o SqlConnection, passando a ele a string de conexão, depois instanciei o SqlCommand, atribuindo a ele o SqlConnection. Depois, usei o método CommandText, do SqlCommand, para fazer a instrução SQL, só que ao invés de passar diretamente os valores dentro dele, eu passei apenas os parâmetros, como uma forma de segurança dos dados. Assim minha instrução SQL fica parametrizada, pelo uso do arroba (@) + o nome da coluna da tabela.
Logo após, passei os valores por meio do método AddWithValue, pertencente ao métodoParameters, do SqlCommand. Nele, que espera dois parâmetros, que são os parâmetros declarados no INSERT e os valores em si, foram passados os valores das colunas, com exceção da coluna ID, que como é Primary Key não precisa ser passado nenhum valor.
Após isso, abro minha conexão por meio do método Open, uso o ExecuteNonQuery, que é perfeito para inserção no banco, já que a mesma não nos retorna dados(a usamos também para fazer Update e Delete) e fecho a conexão.
Apenas para fins didáticos uma breve explicação dos 4 tipos de execuções que tenho noSqlCommand:
ExecuteNonQuery() – executa uma instrução que não retorna dados, por exemplo um INSERT ou UPDATE.
ExecuteReader() – usado para fazemos um SELECT que retorne um DataReader.
ExecuteScalar() – usada quando a consulta retorna apenas um valor, que é obrigatoriamente a primeira linha da primeira coluna.
ExecuteXmlReader() – usada para nos retornar um objeto do tipo Xml Reader.
Finalizando nosso código, coloquei um MessageBox para informar ao usuário que a inserção funcionou. Salve seu projeto e, antes de compilar, coloque um Breakpoint no começo do código, como mostra a imagem a seguir:
Agora compile e teste linha a linha nosso código. Se tudo foi feito como no exemplo, aparecerá a mensagem dizendo que a inclusão foi realizada com sucesso.
Para ter certeza, abra o Server Explorer, vá ao seu Database, vá na Tabela de Clientes, clique com o botão direito em cima dela e clique em Show Table Data. Deverá aparecer uma tela como essa:
Agora vamos codificar o botão de Excluir. Os conceitos de ADO.NET, são praticamente os mesmos, só vai mudar a instrução SQL. Faça o código como abaixo:
Como você pode perceber, muda pouca coisa em relação aos códigos do botão de Inserir. Antes de rodá-lo, insira mais alguns dados na tabela, para que a mesma não fique sem dados. Salve, compile e teste para ver se tudo saiu Ok.
Finalizando, vamos fazer o método referente ao botão Update, que também só será alterado a instrução SQL, já que vamos atualizar os dados já existentes. Dê dois cliques nele e insira o seguinte código:
Neste exemplo alteramos somente o Endereço, Telefone e Email, mais você pode alterar todos os campos se assim achar necessário. Salve, compile e veja o resultado na sua tabela.
Antes do Update:
Depois do Update:
Olá, Pessoal Hoje vou postar um exemplo bem simples WEbForms/ filtro de Pesquisa Usando Aspx/C#.
Vamos lá..
using System;
using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { //Ao inicializar a pagina, seleciona todos os lotes da tabela e lista no grid
//São selecionados apenas os campos necessários para ver no grid. Select SQL
dsLotes.SelectCommand = "SELECT ID_Lote, numero_protocolo, Data, DataHora_Recebimento, Percentual, ID_Terapeuta From dbo.Lotes"; //Esta é a chave primária, ou seja, o ID único de registros da tabela de lotes string[] KeyNames = new string[1]; KeyNames[0] = "ID_LOTE"; //Dizendo ao grid quem (campo) que será a chave primária grdLotes.DataKeyNames = KeyNames; //Definindo o dataset de Lotes que contem o comando select acima para o Grid. grdLotes.DataSourceID = "dsLotes"; }
}
protected void btnFiltrar_Click(object sender, EventArgs e)
{ //Redefinindo o comando SELECT do dataset dsLotes contendo os parâmetros passados no formulário (filtro). // Neste SELECT estou convertendo as datas de parametro para o formato DATE pois estão vindo como String. dsLotes.SelectCommand = "SELECT ID_Lote, numero_protocolo, Data, DataHora_Recebimento, Percentual, ID_Terapeuta, (SELECT SUM(TotalGeralGuia) AS Total FROM AtendimentosNovo WHERE (ID_Lote = L.ID_Lote)) AS Total FROM Lotes AS L WHERE (ID_Convenio = @id_convenio) AND (ID_Lote = @id_lote) AND (ID_Status = @id_status) AND (ID_Terapeuta = @id_terapeuta) AND (paciente=@paciente) AND (CONVERT(VARCHAR(10),DataHora_Recebimento, 1) BETWEEN CONVERT(VARCHAR(10), @dt1, 1) AND CONVERT(VARCHAR(10), @dt2, 1)) ORDER BY Data DESC, DataHora_Recebimento DESC"; //Limpando parametros do Dataset, pois se rodar o filtro novamente na mesma página, estes parametros não poderão ser criados novamente //senão ficam repetidos e ocorre erro. dsLotes.SelectParameters.Clear(); //Adicionando os parametros para o Dataset dsLotes. O nome de cada parametro destes, deve ser igual aos parametros do SELECT acima, //só que sem o arroba @ na frente. Para cada parametro do SELECT é associado o valor do controle do formulário, assim, //o SELECT filtra de acordo com dados digitados pelo usuário. //Se houver necessidade de retirar algum parametro deste filtro/select, excluir uma linha dessas correspondente //ao parametro a ser excluido e depois remover o filtro deste parametro do SELECT de filtro acima. dsLotes.SelectParameters.Add("id_convenio", drpConvenio.SelectedValue); dsLotes.SelectParameters.Add("id_lote", txtID_Lote.Text); dsLotes.SelectParameters.Add("id_status", drpStatus.SelectedValue); dsLotes.SelectParameters.Add("id_terapeuta", drpMedicos.SelectedValue); dsLotes.SelectParameters.Add("paciente", txtPaciente.Text); dsLotes.SelectParameters.Add("dt1", Convert.ToString(txtPeriodoDe.Text)); dsLotes.SelectParameters.Add("dt2", Convert.ToString(txtPeriodoAte.Text));
//Agora que definimos o Select de filtro do Dataset dsLotes e seus parametros, podemos associá-lo ao Grid.
grdLotes.DataSourceID = "dsLotes"; } protected void grdLotes_RowUpdating(object sender, GridViewUpdateEventArgs e) { // Quando clico em EDIT numa linha do grid, permite editar o protocolo do grid.
// Quando termindo de editar, e clico ATUALIZAR, entra nesta rotina, define o comando de update
// a ser executado no banco onde será atualizado o numero de protocolo para o lote atual.
dsLotes.UpdateCommand = "UPDATE dbo.Lotes SET numero_protocolo = @Num_Protocolo WHEREID_Lote=@Id_Lote";
dsLotes.UpdateParameters.Add("Id_Lote", txtID_Lote.Text); //Aqui, estou definindo o valor do protocolo a ser atualizado. // grdLotes.Rows[e.RowIndex].Cells[2].Text é o valor do protocolo da linha e coluna atual do Grid que está sendo editado. dsLotes.UpdateParameters.Add("Num_Protocolo", grdLotes.Rows[e.RowIndex].Cells[2].Text); } } |
Fora de tópico Mostrar Código Esconder Código Mostrar EmoticonEsconder Emoticon