WPF应用程序Linq to sql获取数据

时间:2013-02-27 18:05:53

标签: sql wpf linq

我正在使用显示一些sql数据的数据网格创建一个WPF应用程序。 现在我正在创建一个搜索字段,但这似乎不起作用:

  • Contactpersoon是一个nvarchar
  • bedrijf是一个nvarchar 但
  • LeverancierPK是一个INT 如何在搜索中将其组合起来? 如果我将LeverancierPK转换为字符串,那么我可以使用Contains但这会给我一个错误

        //Inisiatie
        PRCEntities vPRCEntities = new PRCEntities();
    
        var vFound = from a in vPRCEntities.tblLeveranciers
                     where ((((a.LeverancierPK).ToString()).Contains(vWoord)) ||
                           (a.Contactpersoon.Contains(vWoord)) ||
                           (a.Bedrijf.Contains(vWoord)))
                     orderby a.LeverancierPK
                     select a;
        myDataGrid_Leveranciers.ItemsSource = vFound;
    

由于

2 个答案:

答案 0 :(得分:0)

这段代码可以做我想要的,但我认为它可能会更短。

            PRCEntities vPRCEntities = new PRCEntities();

        var vFound = from a in vPRCEntities.tblLeveranciers
                     orderby a.LeverancierPK
                     select a;

        myDataGrid_Leveranciers.ItemsSource = null;
        myDataGrid_Leveranciers.Items.Clear();

        foreach (var item in vFound)
        {
            if (item.Bedrijf.Contains(vWoord))
            {
                myDataGrid_Leveranciers.Items.Add(item);                    
            }
            else
            {           
                if (item.LeverancierPK.ToString().Contains(vWoord))
                {
                    myDataGrid_Leveranciers.Items.Add(item);
                }
                else
                {
                    if (item.Contactpersoon != null)
                    {
                        if (item.Contactpersoon.Contains(vWoord))
                        {
                            myDataGrid_Leveranciers.Items.Add(item);
                        }
                    }
                }
            }                
        }

答案 1 :(得分:0)

如果您不关心从数据库中取回所有记录(在您的答案中,您将所有记录撤回),那么您可以在where子句之前执行.ToList()

var vFound = vPRCEntities.tblLeveranciers.ToList()
             .Where(a => a.LeverancierPK.ToString().Contains(vWoord)) ||
                   a.Contactpersoon.Contains(vWoord) ||
                   a.Bedrijf.Contains(vWoord))
             .OrderBy(a.LeverancierPK);