Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL数据检索-C_C#_Sql Server 2008 Express - Fatal编程技术网

C# SQL数据检索-C

C# SQL数据检索-C,c#,sql-server-2008-express,C#,Sql Server 2008 Express,如何从循环或其他内容中的表中检索数据。这意味着我希望一次一行地检索。但行的顺序可能不同。 例如,第一次我想要第五排,然后是第二排,然后是第九排…依此类推 我在网上搜索过。我只有两个答案 使用多个SqlConnection对象 reader=sqlCommand.ExecuteReader; 读一读{ reader[列名].ToString; } 如果你有我的问题,请帮助我 谢谢。读卡器方法通常是一种方法,但是您的查询或SP必须已经按照您想要检索的顺序选择了数据 或者,您可以将所有内容加载到数据集

如何从循环或其他内容中的表中检索数据。这意味着我希望一次一行地检索。但行的顺序可能不同。 例如,第一次我想要第五排,然后是第二排,然后是第九排…依此类推

我在网上搜索过。我只有两个答案

使用多个SqlConnection对象

reader=sqlCommand.ExecuteReader; 读一读{ reader[列名].ToString; }

如果你有我的问题,请帮助我
谢谢。

读卡器方法通常是一种方法,但是您的查询或SP必须已经按照您想要检索的顺序选择了数据

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

我看到有两种方法:

1在一条sql语句中获取所有行,然后访问内存中所需的行

或者所有的东西都太多了,或者你需要最新的数据


2仅获取所需的特定行,然后再次获取下一行。

最好将数据读入数据集,如本例所示:


你到底想达到什么目的?从DS中检索随机行,或者您是否有特定的标准来选择要返回的行?如果是这样的话,在将它们加载到读卡器之前,您不能对它们进行排序吗?

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

作为替代方案,我建议您将结果加载到数据表中:

    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
    }

/Alex

如何决定检索行的顺序?也许可以重写查询,使其只返回相关行?