Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用linq查询筛选数据表列值_C#_Sql_Linq_Linq To Sql_Datatable - Fatal编程技术网

C# 如何使用linq查询筛选数据表列值

C# 如何使用linq查询筛选数据表列值,c#,sql,linq,linq-to-sql,datatable,C#,Sql,Linq,Linq To Sql,Datatable,我的数据库中有一个表。这张桌子叫Order。 在这个表中,我有一些字段,比如DOCNUMBR、VENDORID、DOCDATE等等 我在我的C应用程序中获取了DataTable dt中的所有记录,现在我想筛选三个类别的记录。 1.按文件编号。从DOCNUMBR的Ex=1000到5000 2.按供应商ID。Exfrom VENDORID=ACETRAVE0001至DOLECKIC001 3.按文件日期。交货日期=2014年4月31日至2014年4月1日 我有以下SQL查询 从VENDORID='A

我的数据库中有一个表。这张桌子叫Order。 在这个表中,我有一些字段,比如DOCNUMBR、VENDORID、DOCDATE等等

我在我的C应用程序中获取了DataTable dt中的所有记录,现在我想筛选三个类别的记录。 1.按文件编号。从DOCNUMBR的Ex=1000到5000 2.按供应商ID。Exfrom VENDORID=ACETRAVE0001至DOLECKIC001 3.按文件日期。交货日期=2014年4月31日至2014年4月1日

我有以下SQL查询

从VENDORID='ACETRAVE0001'或VENDORID喜欢'a%'或VENDORID='Doleckic001'或VENDORID喜欢'D%'的订单中选择*


从DOCNUMBR>='1000'和DOCNUMBR='2013-09-26'以及DOCDATE的顺序中选择*您可以使用数据视图而不是Linq。但是你没有抓住你不满意的地方。 请参阅下面的过滤链接,

上述SQL查询获得的结果不是由LINQ查询正确生成的。例如,如果是供应商ID,我想检索介于“a”到“d”之间的所有供应商。在SQL中,我已经完成了,但不能通过我的C窗口应用程序中的LINQ来完成。请帮忙。
private DataTable filterByRang(string _from, string _to, string flag,DataTable dt)
    {
        try
        {
            if (flag == "isDocument")
            {

                var Value = dt.AsEnumerable().Where(z => z.Field<string>("DOCNUMBR").StartsWith(_from ) ||z.Field<string>("DOCNUMBR").Contains(_from )||
 z.Field<string>("DOCNUMBR").StartsWith(_to) || z.Field<string>("DOCNUMBR").Contains(_to));
                dt = Value.CopyToDataTable();

            }
            else if (flag == "isDocDate")
            {
                var filter = dt.AsEnumerable().Where(x => x.Field<string>("DOCDATE").Substring(0, 9) == _from || x.Field<string>("DOCDATE").Substring(0, 9) == _to);
                dt = filter.CopyToDataTable();

            }
            else if (flag == "isVendor")
            {

                var Value = from row in dt.AsEnumerable()
                            where row.Field<string>("VENDORID").ToLower().Contains(_from.ToLower()) || row.Field<string>("VENDORID").ToLower().Contains(_to.ToLower())
                            orderby row.Field<string>("VENDORID")
                            select row;

                    dt = Value.CopyToDataTable();
            }
        }
        catch (Exception ex)
        {
            Console.Write(ex.Message);
        }
        return dt;
    }