参考代码
[WebMethod]
public static string GetData()
{
string query = "SELECT * FROM tblCountry";
SqlCommand cmd = new SqlCommand(query);
return GetData(cmd).GetXml();
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = @"Data Source=.\sqlExpress;Initial Catalog=dbTest;Integrated Security=SSPI; pooling=false";
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
return ds;
}
}
}
}
详情请见:Link
查询返回20行,我需要单独显示10行。在没有任何查询更改的情况下,有可能限制数据集中的数据。提出一些想法
答案 0 :(得分:4)
你可以试试这个
var rows = ds.Tables[0].AsEnumerable().Take(10);
现在您也可以将这些行转换为像这样的数据表
DataTable limitedTable = rows.CopyToDataTable<DataRow>();
答案 1 :(得分:0)
您对更改查询的要求有多严格?你可以在查询中添加一些文字吗?
如果是,您可以使用SET ROWCOUNT。
示例:
string query = "SET ROWCOUNT 10;"
query += "SELECT * FROM tblCountry";
答案 2 :(得分:0)
您可以使用Fill
的重载来获取开始和结束记录索引。
var ds = new DataSet; //using means the DataSet will go out of scope so you can't return it!
sda.Fill(1, 10, ds.Tables.Add("MyTable"));
return ds; //it now contains a table called "MyTable".
您可以找到更多详情here
但是和大多数评论者一样,我更倾向于在可能的情况下修改查询
答案 3 :(得分:-1)
string query = "SELECT TOP 10 FROM tblCountry";
您可以像这样进行查询,只返回10行。