小编Cur*_*ous的帖子

检查DataTable中是否存在行?

我有一个数据表和一行.我想将行导入数据表,只要数据表中不存在该行.

我怎样才能做到这一点?

c# datatable datarow

8
推荐指数
4
解决办法
5万
查看次数

集团内部集团linq

我有这样的数据表:

我想将此表分组为FIELD A和FIELD B,我的组的第三个字段应该是FIELD C的列表,但必须按ID字段进行分组.

最后,结果应该是这样的:

First Field | Second Field |  Third Field
------------+--------------+----------------
     5      |     XXXX     |(8) (2,6,3) (9)  
     5      |     KKKK     |(8,3)
Run Code Online (Sandbox Code Playgroud)

第三个字段必须是列表列表.

我怎么能用LINQ做到这一点?

到目前为止我试过这个:

        var trytogroup = (from p in datatable.AsEnumerable()
                                group p by new
                                {
                                    ID = p["Id"].ToLong(),
                                    FieldA = p["FieldA"].ToLong(),
                                    FieldB = p["FieldB"].ToString()
                                } into g
                                select new
                                {
                                    FirstField = g.Key.FieldA,
                                    SecondField = g.Key.FieldB,
                                    ThirdField = datatable.AsEnumerable().Where(p => p["FieldA"].ToLong() == g.Key.FieldA && p["FieldB"].ToString() == g.Key.FieldB).Select(p => p["FieldC"].ToLong()).GroupBy(x => x["Id"].ToLong()).Distinct().ToList()
                                });
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

c# linq linq-to-dataset

3
推荐指数
1
解决办法
1319
查看次数

在SQL命令上将相等性更改为其他内容

我正在开发一个Windows窗体应用程序.我想通过用户选择更改SQL命令.这是我的代码:

command.CommandText = "SELECT * FROM Product WHERE price = @price";
command.Parameters.AddWithValue("@price", 35);
Run Code Online (Sandbox Code Playgroud)

我还想将"="更改为"> ="或其他内容.当我使用参数时,我会收到错误.

command.CommandText = "SELECT * FROM Urun WHERE price @equal @price";
command.Parameters.AddWithValue("@price", 35);
command.Parameters.AddWithValue("@equal", ">=");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# sql sql-server

2
推荐指数
1
解决办法
114
查看次数

LINQ具有多个选择和多个选择组

我有一个这样的表:

First Field | Second Field |  Third Field   |   Fourth Field
------------+--------------+----------------+----------------
 5      |     aaaa     |      47            |       abc
 5      |     aaaa     |      57            |       def
 5      |     aaaa     |      63            |       xyz
 5      |     bbbb     |      39            |       www
 5      |     bbbb     |      37            |       lol
 5      |     cccc     |      84            |       yuy
Run Code Online (Sandbox Code Playgroud)

我想通过第一个和第二个字段对此表进行分组,但我想只获得具有最大第三个字段的行.

我怎么能通过c#中的LINQ来做到这一点?

var curi = (from row in customClassList.AsEnumerable()
                    group row by new
                    {
                        First = row.FirstField.ToString(),
                        Second = row.SecondSield.ToString(),
                    } into grp
                    select new …
Run Code Online (Sandbox Code Playgroud)

c# linq

1
推荐指数
1
解决办法
186
查看次数

标签 统计

c# ×4

linq ×2

datarow ×1

datatable ×1

linq-to-dataset ×1

sql ×1

sql-server ×1