|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
NorthWindDataContext db = new NorthWindDataContext();
protected void Page_Load(object sender, EventArgs e)
{
// Aqui no Load nao carrego nada
// Esse código foi escrito para efeito de teste
// portanto não estou usando os tratamento de erros
// (try, cath e finally) de forma adequada.
}
protected void Button1_Click(object sender, EventArgs e)
{
/* Botão Select
* Observe que o nome das colunas são trocados em tempo de execução
*/
// var dados = from p in db.MEMBROs
// select new { Id = p.id_membro, Nome= p.ds_membro, Sexo = p.sx_membro };
/* Outra forma do comando Select usando lambda */
var dados = db.MEMBROs.Select(
p => new { Id = p.id_membro, Nome = p.ds_membro, Sexo = p.sx_membro }
);
gridDados.DataSource = dados;
gridDados.DataBind();
lblMsg.Text = "Lista todos os Nomes.";
}
protected void Button2_Click(object sender, EventArgs e)
{
/* Botão Where
* Usando a clausula where no LINQ
* Seleciono somente sexo Feminino
*/
var dados = from p in db.MEMBROs
where p.sx_membro == 'F'
select new { Id = p.id_membro, Nome = p.ds_membro, Sexo = p.sx_membro };
gridDados.DataSource = dados;
gridDados.DataBind();
lblMsg.Text = "Lista somente os registros com sexo = F";
}
protected void Button3_Click(object sender, EventArgs e)
{
/* Botão Order By
* Usando a clausula orderby no LINQ */
var dados = from p in db.MEMBROs
orderby p.ds_membro
select new { Nome = p.ds_membro, Sexo = p.sx_membro, Id = p.id_membro };
gridDados.DataSource = dados;
gridDados.DataBind();
lblMsg.Text = "Classifica por Nome.";
}
protected void Button4_Click(object sender, EventArgs e)
{
/* Botão Group BY
* Usando a clausula Insert no LINQ */
var dados = from p in db.MEMBROs
group p by p.sx_membro into Group
select new { sx_membro = Group.Key, };
gridDados.DataSource = dados;
gridDados.DataBind();
lblMsg.Text = "Agrupa por Sexo.";
}
protected void Button6_Click(object sender, EventArgs e)
{
/* Botão Insert
*/
try
{
MEMBRO memb = db.MEMBROs.First(p => p.id_membro == 36);
lblMsg.Text = "O Id = 36 já foi inserido. Use o botão Delete";
}
catch
{
var NovoMembro = new MEMBRO
{
id_esp = 2,
id_membro = 36,
sx_membro = 'M',
ds_membro = "Jose da Silva"
};
db.MEMBROs.InsertOnSubmit(NovoMembro);
db.SubmitChanges();
lblMsg.Text = "O Nome Jose da Silva foi inserido com Id = 36.";
}
finally
{
}
// Mostra classificado por ID descedente
var dados = from p in db.MEMBROs
orderby p.id_membro descending
select new { Id = p.id_membro, Nome = p.ds_membro, Sexo = p.sx_membro };
gridDados.DataSource = dados;
gridDados.DataBind();
}
protected void Button7_Click(object sender, EventArgs e)
{
/* Botão Update
*/
try
{
MEMBRO memb = db.MEMBROs.First(p => p.id_membro == 36);
// memb.id_membro = 36;
// Troco o nome do membro caso o botão Update
// seja pressionado mais de uma vez.
if (memb.ds_membro == "Maria Fogueteira")
{
memb.ds_membro = "Jose da Silva";
memb.sx_membro = 'M';
lblMsg.Text = "O Id = 36 foi alterado para Jose da Silva.";
}
else
{
memb.ds_membro = "Maria Fogueteira";
memb.sx_membro = 'F';
lblMsg.Text = "O Id = 36 foi alterado para Maria Fogueteira.";
}
db.SubmitChanges();
}
catch
{
lblMsg.Text = "Primeiro clique no botão Insert, para incluir um novo registro.";
}
finally
{
}
var dados = from p in db.MEMBROs
orderby p.id_membro descending
select new { Id = p.id_membro, Nome = p.ds_membro, Sexo = p.sx_membro };
gridDados.DataSource = dados;
gridDados.DataBind();
}
protected void Button8_Click(object sender, EventArgs e)
{
/* botão Delete
*/
try
{
MEMBRO memb = db.MEMBROs.First(p => p.id_membro == 36);
if (memb.id_membro == 36)
{
db.MEMBROs.DeleteOnSubmit(memb);
db.SubmitChanges();
lblMsg.Text = "O Id = 36 foi excluído";
}
}
catch
{
lblMsg.Text = "O registro Id = 36 já foi excluído. Use o botão Insert";
}
var dados = from p in db.MEMBROs
orderby p.id_membro descending
select new { Id = p.id_membro, Nome = p.ds_membro, Sexo = p.sx_membro };
gridDados.DataSource = dados;
gridDados.DataBind();
}
}
|