Objetos de pedido para o Northwind Access Database
-
19-09-2019 - |
Pergunta
Preciso construir dois objetos: uma lista de pedidos e um pedido.
Usando esses dois objetos, tenho que preencher um DataGridView com um histórico dos pedidos. No entanto, sou instruído a não usar fontes de ligação para a conexão ou outros controles de arrastar e soltar. Infelizmente, do Google, parece que essas são as opções mais populares para esse tipo de problema.
Alguém pode me apontar na direção certa? Não tenho muita experiência com C#.
Obrigado.
Solução
Você poderia criar um Order
classe:
public class Order
{
public int OrderID { get; set; }
public DateTime OrderDate { get; set; }
}
Leia os registros do seu banco de dados e carregue sua coleção de pedidos
List<Order> orders = new List<Order>();
using(SqlConnection cn = new SqlConnection("..."))
using (SqlCommand cm = cn.CreateCommand())
{
cn.Open();
cm.CommandText = "SELECT OrderId, OrderDate FROM Orders";
SqlDataReader dr = cm.ExecuteReader();
while (dr.Read())
{
orders.Add(new Order()
{
OrderId = dr.GetInt32(dr.GetOrdinal("OrderId")),
OrderDate = dr.GetDateTime(dr.GetOrdinal("OrderDate"))
});
}
}
Sobre a parte da Gridview, você deve dar uma olhada Visão geral da ligação de dados do ASP.NET
Outras dicas
Este é realmente um problema bastante trivial. Você precisará usar estas coisas:
- DataAdapter (SQL, OLEDB, etc)
- DataGridView (ou DataGrid)
Depois de ter um DataAdapter e seu conjunto de dados associado, você pode simplesmente fazer um loop para preencher a grade.
Você pode vincular a qualquer coleta de dados que implementa IEnumerable porque quando você chama a função Databind () na grade, ela itera através dos dados e vinculará a grade à propriedade de cada objeto armazenado na coleção refletindo (usando reflexão) a Objeto e procurando uma propriedade que corresponda ao campo de dados especificado para cada campo vinculado na grade.