2010-12-20 86 views
1

如何从循环内的表中检索数据或其他内容。这意味着我想一次一行地检索。但行的顺序可能不同。 例如,我第一次想要第5排,然后是第2,然后是9 ...等等。SQL数据检索 - C#

我通过互联网搜索到它。我只有两个答案。

  1. 使用多个SqlConnection对象。

  2. reader = sqlCommand.ExecuteReader(); while(reader.Read())reader [“Column Name”]。ToString(); }

如果你得到了我的问题,请大家帮我 谢谢。

+1

你如何决定你检索行的顺序?也许你的查询可以重写,它只返回相关的行? – SWeko 2010-12-20 14:24:02

回答

2

听起来像你应该更正你的数据层,以你要处理它们的顺序返回值。这将是最简单和最快的! :)

作为替代我建议你你的结果加载到一个DataTable:

DataTable table = new DataTable(); 
    using (SqlCommand command = new SqlCommand()) 
    { 
      // TODO: Set up your command here 
     using (SqlDataAdapter adapter = new SqlDataAdapter(command)) 
     { 
      adapter.Fill(table); 
     } 
    } 

    // Use your DataTable like this... 

    if (table.Rows.Count >= 5) { 
     DataRow firstRow = table.Rows[0]; // #1 row 
     DataRow fifthRow = table.Rows[4]; // #5 row 
     DataRow secondRow = table.Rows[1]; // #2 row 
    } 

/亚历克斯

+0

好答案。谢谢! – sura2k 2011-06-13 09:52:11

0

阅读器方法通常是要走的路,但是您的查询(或SP)必须已经按照您想要检索的顺序选择数据。

或者,您可以将所有内容加载到DataSet中,并对其中的行进行随机访问。

+0

我明白了。我再看看吧。 – sura2k 2010-12-20 14:23:40

0

两种方式,我看到:

1)获取的所有行的一个SQL语句,然后访问你的内存需要的行。

或(的“一切”实在是太多了,或者你需要的最新数据)

2)仅获得您所需要的特定行,再下一行。

0

究竟是什么你想实现什么?从DS中检索随机行,或者您是否有特定的标准来选择要返回的行?如果是这样,你不能在将它们加载到读者之前订购它们吗?