Array
(
)

Cadastro simples SQL 2005 - para estudo

Cjsartorif
   - 07 fev 2009

Esse é um dos primeiros softwares para estudo em C# que fiz portanto não leva em consideração muitas boas praticas, é um cadastro bem simples usando SQL Server 2005 Express:
A estrutura do Banco de Dados é a seguinte:

[URL=http://imageshack.us][img:08097f4a94]http://img517.imageshack.us/img517/5751/21266605mw9.jpg[/img:08097f4a94][/URL] [URL=http://g.imageshack.us/img517/21266605mw9.jpg/1/][img:08097f4a94]http://img517.imageshack.us/img517/21266605mw9.jpg/1/w281.png[/img:08097f4a94][/URL]

Código do programa utilizando SQL Parameters:

Principal.cs

#Código


using System.Data.SqlClient;

namespace Atividades
{
public partial class Principal : Form
{
public Principal()
{
InitializeComponent();
}

private void CarregaDados()
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Atividades;");
string sSql = ("SELECT AtividadesID,Nome,Descricao,DataInicio,DataFim FROM Atividades");
SqlCommand cmd = new SqlCommand(sSql, conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
da.Fill(ds, "Atividades");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Atividades";

try
{
conn.Open();
}
catch (SqlException ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
finally
{
conn.Close();
}

}
private void ExcluiDados()
{
string selecao = dataGridView1.CurrentRow.Cells["AtividadesID"].Value.ToString();
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Atividades;");
string sSql = ("DELETE FROM Atividades WHERE AtividadesID = @AtividadesID");
SqlCommand cmd = new SqlCommand(sSql, conn);

//Parametro
cmd.Parameters.Add("@AtividadesID", SqlDbType.Int);

//Valor Parametro
cmd.Parameters["@AtividadesID"].Value = Convert.ToInt32(selecao);

try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
MessageBox.Show("Erro: " + ex.Message);
}
finally
{
conn.Close();
}
}

private void Principal_Load(object sender, EventArgs e)
{
CarregaDados();
}

private void btnEditar_Click(object sender, EventArgs e)
{
//Recebe valor do ID da linha selecionada
string selecao = dataGridView1.CurrentRow.Cells["AtividadesID"].Value.ToString();

Edicao frm3 = new Edicao();
//Enviar valor para outro form
frm3.mySelection = selecao;
//abrir form de edição
frm3.Show();

}

private void btnNovo_Click(object sender, EventArgs e)
{
Cadastro frm1 = new Cadastro();
frm1.Show();

}

private void btnExcluir_Click(object sender, EventArgs e)
{
ExcluiDados();
CarregaDados();
dataGridView1.Refresh();
}


private void Principal_Activated(object sender, EventArgs e)
{
//Atualizar Grid
CarregaDados();
dataGridView1.Refresh();
}



}
}


Edicao.cs

#Código

using System.Data.SqlClient;

namespace Atividades
{
public partial class Edicao : Form
{
public Edicao()
{
InitializeComponent();
}
//Propriedade que recebe linha selecionado do Grid
public string mySelection { get; set; }

private void EditaDados()
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Atividades;");
string sSql = "UPDATE Atividades SET Nome=@Nome,Descricao=@Descricao,DataInicio=@DataInicio,DataFim=@DataFim WHERE AtividadesID=@AtividadesID";
SqlCommand cmd = new SqlCommand(sSql, conn);

//Cria Parametros
cmd.Parameters.Add("@Nome",SqlDbType.VarChar, 50);
cmd.Parameters.Add("@Descricao",SqlDbType.VarChar, 50);
cmd.Parameters.Add("@DataInicio",SqlDbType.DateTime);
cmd.Parameters.Add("@DataFim",SqlDbType.DateTime);
cmd.Parameters.Add("@AtividadesID", SqlDbType.Int);

//Valores Parametros
cmd.Parameters["@Nome"].Value = txtNome.Text;
cmd.Parameters["@Descricao"].Value = txtDescricao.Text;
cmd.Parameters["@DataInicio"].Value = txtDataInicio.Text;
cmd.Parameters["@DataFim"].Value = txtDataFim.Text;
cmd.Parameters["@AtividadesID"].Value = Convert.ToInt32(mySelection);


try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show("Erro: " + ex.Message);
}
finally
{
conn.Close();
}
}

private void Form3_Load(object sender, EventArgs e)
{
int selecaoId = Convert.ToInt32(mySelection);
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Atividades;");
try
{
conn.Open();
string sSql = "SELECT AtividadesID,Nome,Descricao,DataInicio,DataFim FROM Atividades WHERE AtividadesID = ´"+ selecaoId +"´ ";
SqlCommand cmd = new SqlCommand(sSql, conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
da.Fill(ds,"Atividades");

//Preencher os controles do form
foreach (DataRow dr in ds.Tables["Atividades"].Rows)
{
txtNome.Text = dr["Nome"].ToString();
txtDescricao.Text = dr["Descricao"].ToString();
txtDataInicio.Text = dr["DataInicio"].ToString();
txtDataFim.Text = dr["DataFim"].ToString();
}
}
catch(SqlException ex)
{
MessageBox.Show("Erro: " + ex.Message);
}
finally
{
conn.Close();
}
}


private void btnGravar_Click(object sender, EventArgs e)
{
EditaDados();

}

private void btnCancelar_Click(object sender, EventArgs e)
{
Edicao frm3 = new Edicao();
frm3.Close();
}



}
}


Cadastro.cs


#Código

using System.Data.SqlClient;

namespace Atividades
{
public partial class Cadastro : Form
{
public Cadastro()
{
InitializeComponent();
}

private void SalvaDados()
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Atividades;");

//Criar comando
string sSql = "INSERT INTO Atividades (Nome,Descricao,DataInicio,DataFim) VALUES (@Nome,@Descricao,@DataInicio,@DataFim)";
SqlCommand cmd = new SqlCommand(sSql, conn);

//Definir Parametros: nome, tipo e tamanho
cmd.Parameters.Add("@Nome", SqlDbType.VarChar, 50);
cmd.Parameters.Add("@Descricao", SqlDbType.VarChar, 50);
cmd.Parameters.Add("@DataInicio", SqlDbType.DateTime);
cmd.Parameters.Add("@DataFim", SqlDbType.DateTime);

//Definir valores dos parametros
cmd.Parameters["@Nome"].Value = txtNome.Text;
cmd.Parameters["@Descricao"].Value = txtDescricao.Text;
cmd.Parameters["@DataInicio"].Value = txtDataInicio.Text;
cmd.Parameters["@DataFim"].Value = txtDataFim.Text;

try
{
conn.Open();
//Executar comando
cmd.ExecuteNonQuery();
//Aviso
MessageBox.Show("Dados gravados com sucesso");
}
catch (SqlException ex)
{
MessageBox.Show("Error: " + ex.Message);
}
finally
{
conn.Close();
}

}


private void btnNovo_Click(object sender, EventArgs e)
{
txtNome.Text = "";
txtDescricao.Text = "";
txtDataInicio.Text = "";
txtDataFim.Text = "";
}

private void btnCadastrar_Click(object sender, EventArgs e)
{
SalvaDados();
}
}
}


Baixe o projeto do VS2008 [url=http://rapidshare.com/files/195119353/Atividades.rar]aqui[/url].

Qualquer duvida é só postar. :wink: