gpt4 book ai didi

C# 列表从数据库中检索元组只返回第一个可用的元组

转载 作者:行者123 更新时间:2023-11-30 17:26:20 26 4
gpt4 key购买 nike

我正在使用此查询和列表从 MSSQL 数据库中检索元组:

string query3 = @"select * from HistoryMessageValues where IdMessage in (select id from HistoryMessages where IDDevice in ("+listIDs+")) and (DtRicezione between '" + fromdate.ToString("yyyy-dd-MM") + "' and '" + todate.ToString("yyyy-dd-MM") + "')";
List<HistoryMessageValues> totalm= dbMngr.Set<HistoryMessageValues>().FromSql(query3).ToList();
List<HistoryMessageValues> outdoor = totalm.Where(x => x.IdDataModelField==Guid.Parse("9f5d1fe3-27d7-44ee-bea4-02b36897f9af")).ToList();

明确写的查询是这样的:

select * from HistoryMessageValues where IdMessage in (select id from HistoryMessages where IDDevice in ('7b6d6ca2-4d87-4334-9477-d96925d992c4' )) and (DtRicezione between '2010-01-01' and '2019-01-08')
and IdDataModelField='9f5d1fe3-27d7-44ee-bea4-02b36897f9af'

如果我直接对数据库执行查询本身,我将获得这些元组:

Tuples obtained through query execution

如您所见,属性“value”和“DtRicezione”在元组上是不同的(至少,其中的大部分)。

与此同时,我只获得了复制数百个的第一个元组。

确实,在我的后端执行了 3 行 C# 之后,执行了以下循环:

List<HistoryMessageValues> outdoor = totalm.Where(x => x.IdDataModelField==Guid.Parse("9f5d1fe3-27d7-44ee-bea4-02b36897f9af")).ToList(); 
for (int i=0; i<outdoor.Count(); i++)
{
Console.WriteLine(outdoor.ElementAt(i).value + " " + outdoor.ElementAt(i).DtRicezione + " " + outdoor.ElementAt(i).IdDataModelField);
}

结果是这样的:

Result after iteraion

正如您可以比较两个图像一样,这将是数据库表中可用的第一个元组。

表的脚本创建:

    SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[HistoryMessageValues](
[id] [bigint] NOT NULL,
[IdDataModelField] [uniqueidentifier] NOT NULL,
[value] [nvarchar](50) NOT NULL,
[IdMessage] [bigint] NOT NULL,
[DtRicezione] [datetime] NULL,
[idKey] [uniqueidentifier] NULL
) ON [PRIMARY]
GO

最佳答案

Istorn!

尝试使用 foreach 而不是您的 for...

outdoor.ForEach( x => Console.WriteLine(x.value + " " + x.DtRicezione + " " + x.IdDataModelField));

尝试检查查询执行器中的数据读取器。也许它不会进入下一行(因此您的列表每次都会收到来自数据库的同一行)。

关于C# 列表从数据库中检索元组只返回第一个可用的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com