从SELECT中的重新编制数据列表列表?

Ismael.

成员
加入
3月20日,2020年
消息
18
编程经验
1-3
嗨伙计。
我正在尝试使用列表列表来从表中的查询中检索数据。
查询是(简化)"从表1中选择C1,C2,C3"。因此,有三列和未知数量的检索注册。
处理它我做到了:
C#:
列表<List<string>> TabValues();
List<string> Columns();
List<string> Resul();
List<string> Temp();

Columns.Add("C1");
Columns.Add("C2");
Columns.Add("C3");

TabValues.Add(Columns);
TabValues.Add(Temp);
TabValues.Add(Temp);
TabValues.Add(Temp);
我必须在TabValues中包含一个空名单(Temp),以便收到数据。
在我运行命令后,在我所做的表中获取注册表:
C#:
rdr = Cmd.ExecuteReader();
i=0;

while (rdr.Read())
{
    for (j=0; j<3; j++)
    {
        TabValues.ElementAt(i+1).Insert(0, GetValue(j).ToString());
    }
    
    i++;
}
它不起作用。塔比符中的所有列表都接收相同的值。
在此示例中,我使用了3列来恢复,但我必须用任何数量的列来制作我的例程通用。
有人可以告诉我可以编码的错误是什么?什么是最好的解决方案。
谢谢。
 
最后编辑了主持人:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,720
地点
悉尼,澳大利亚
编程经验
10+
这并不清楚你实际上要实现的目标。列表清单几乎肯定不是最佳方式。如果您要为您开始的数据和您期望的结构提供有意义的数据,可能会有所帮助。

无论如何,问题的原因是您将相同的内部列表添加到外部列表三次,而不是添加三个单独的列表。考虑一下:让我们说我正在编写一个人列表,我将您添加到该列表三次。如果我在那个名单的第一个人上把一件红色衬衫放在第一位,这是一个令人惊讶的是,所有三个人都有一个红色的衬衫?当然不是,因为它只是一个人在列表中三次。与您的代码相同的事情。您正在创建一个内部列表并将其添加到外部列表三次。如果将项目添加到第一个内部列表中,则每个内部列表都不包含该项目,因为所有三个内部列表都是相同的列表。
 

Ismael.

成员
加入
3月20日,2020年
消息
18
编程经验
1-3
嗨,jmplekinney。现在我明白了我的错误。我会尽力清除我需要的东西。我正在制作这样的例程:
readtable(字符串tname,string fromclause,string whereclause,list<List> string Resul)
在例程内部构造SELECT子句并将其传递给DB。结果将投入“报告”列表(列表)。因为它是一个通用的routin,我不知道预先牵引有多少列,这个数字是列表的数量。在Resul中,第一个列表是研究的列。使用“回顾”列表,我将填充DataGridView。我尝试过2个尺寸阵列,但问题是其他:我不知道将重新生命多少注册表,此数字是阵列的扩展名。这种情况是我可以以非优雅的方式解决问题:在将数据发送到例程之前,我在表中选择一个选择count(*)。它有效,但......
我认为我的问题现在是:如何在列表列表的一个位置插入数据?我试着用
Resulmementat(POS1).Elementat(POS2),但我失败了。你能帮助我吗?或者你有其他方法来解决我的问题?
非常感谢。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,720
地点
悉尼,澳大利亚
编程经验
10+
你不了解你在你寻找自己时发现的例子是什么?网站上有很多信息。我们无需重现这种情况。在进行研究并尝试实现它之后,如果您尝试的是不起作用,您将在此发布特定问题。首先看,稍后提问。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,892
地点
切萨皮克,va.
编程经验
10+
最佳 底部