我只是注意到我写的一个函数有问题,我意识到了这个问题,但“修复”只会使情况恶化。
该函数连接到我的数据库并进行选择查询,然后它将任何行作为 a 返回List<List<string>>
,预期的行为是List<string>
为每一行返回 1,并且由于每一行都有多个列,我可以使用列表索引访问它们。
try
{
///Open connection before we can read
dataConnection.Open();
///Prepare to read
reader = dataCommand.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
myTestData.Clear();
for (int i = 0; i < howManyColumns; i++)
{
///Add columns to myTestData list
myTestData.Add(reader.GetValue(i).ToString());
}
///Add myTestData list to dataRows
dataRows.Add(myTestData);
}
}
catch (SqlException exSql)
{
Program.displayExError(exSql, true);
}
问题在于:
myTestData.Clear();
我尝试清除列表,所以下次我将一个列表添加到我的列表列表中时,它将没有元素并避免将所有行附加到同一个列表中,但是如果我这样做myTestData.Clear();
,列表内容将被删除并且我的列表列表也丢失了所有内容,有什么想法可以在不附加到第一个列表的情况下保留数据?
PS:我所做的修复是添加myTestData.Clear();
导致问题的原因,但是如果我将其删除,所有行都将附加到第一个 List 并且也没有用。如果问题不清楚,请告诉我以尝试澄清
谢谢各位!