数据库中的数据集为空

时间:2015-04-04 16:28:12

标签: c# database visual-studio-2013 dataset

我正在从我的数据库访问一个表。我已将这些表添加为Visual Studio 2013中的数据集,但是当我尝试使用它时,它会显示为空。

这就是我想要做的事情:

IQueryable<NorthwindDataSet.OrdersRow> LookupOrdersForYear(int year)
{
    using (var context = new NorthwindDataSet())
    {
        var orders =
            from order in context.Orders
            where order.OrderDate != null && order.OrderDate.Year >= year
            select order;
        return orders.ToList().AsQueryable();
    }
}

我发现orders是空的,所以我添加了

Console.WriteLine(context.Orders.Count);

这给了我一个0的输出。出了什么问题?

1 个答案:

答案 0 :(得分:0)

我发现我需要用数据填充数据集,否则它将保持空白。

SqlDataAdapter可以解决这个问题:

SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand("SELECT * FROM Orders");
string connString = @"Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);

adapter.SelectCommand = command;
adapter.SelectCommand.Connection = conn;
adapter.Fill(context.Orders);

SqlDataAdapter.Fill有几种重载方法,其中一种采用数据集,另一种采用数据表。当我第一次使用SqlDataAdapter时,我使用的是采用数据集

的那个
adapter.Fill(context);

仍然给了我一个空的背景。订单。正确的一个需要数据表:

adapter.Fill(context.Orders);

这个工作并按预期返回日期。