ADO.NET提供了DataSet(数据集)对象,利用数据集,我们可以在断开与数据库连接的情况下操作数据,可以操作来自多个数据源的数据。
DataSet数据集的遍历:
将DataSet遍历转换成List。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication1
{
/// <summary>
/// 订单实体类
/// </summary>
public class Order
{
/// <summary>
/// 订单编号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string ProductName { get; set; }
/// <summary>
/// 数量
/// </summary>
public int? Quantity { get; set; }
/// <summary>
/// 总金额
/// </summary>
public decimal? Money { get; set; }
/// <summary>
/// 销售时间
/// </summary>
public DateTime? SaleDate { get; set; }
/// <summary>
/// 将DataTable转换成List数据
/// </summary>
public static List<Order> ToList(DataSet dataSet)
{
List<Order> orderList = new List<Order>();
if (dataSet != null && dataSet.Tables.Count > 0)
{
foreach (DataRow row in dataSet.Tables[0].Rows)
{
Order order = new Order();
if (dataSet.Tables[0].Columns.Contains("OrderNo") && !Convert.IsDBNull(row["OrderNo"]))
order.OrderNo = Convert.ToString(row["OrderNo"]);
if (dataSet.Tables[0].Columns.Contains("ProductName") && !Convert.IsDBNull(row["ProductName"]))
order.ProductName = Convert.ToString(row["ProductName"]);
if (dataSet.Tables[0].Columns.Contains("Quantity") && !Convert.IsDBNull(row["Quantity"]))
order.Quantity = Convert.ToInt32(row["Quantity"]);
if (dataSet.Tables[0].Columns.Contains("Money") && !Convert.IsDBNull(row["Money"]))
order.Money = Convert.ToDecimal(row["Money"]);
if (dataSet.Tables[0].Columns.Contains("SaleDate") && !Convert.IsDBNull(row["SaleDate"]))
order.SaleDate = Convert.ToDateTime(row["SaleDate"]);
orderList.Add(order);
}
}
return orderList;
}
}
}