严格上说,这里主要和数据绑定没什么关系了。主要内容是sql分页。使用webService获取服务器数据,考虑到服务器数据很多,因此需要对服务器数据进行分页,数据库分页可以在数据库内部分页也可以用sql分页,使用sql分页还是更通用些,毕竟有些数据库内部不支持分页的。
数据库分页代码。
在webservice里面,建立一个函数SelectMN(int m,int n)
string cmdStr = "SELECT TOP "+ (n - m + 1) + " * FROM [课程表uwp] WHERE(id NOT IN(SELECT TOP "+(m-1) +" [id] FROM [课程表uwp] ORDER BY [statis] DESC,ID)) ORDER BY [statis] DESC,ID";在函数中使用上面的语句删选数据,经过使用后发现当m=1的时候select Top 0 会报错,因此改进一下判断当m=1的时候,m=2.这样在调用的时候就可以返回部分服务器数据了。
至于uwp如何接入WebService,请看这篇文章:
http://songshizhao.com/blog/blogPage/89.html
后记:
选择排序从m到n的代码,修改如下,对于m=1的情况进行了一个判断
[WebMethod]
public object[] SelectMN(int m,int n)
{
if (m < n)
{
string cmdStr;
if (m == 1)
{
cmdStr = "SELECT TOP " + (n) + " * FROM [rockhero] ORDER BY ID";
}
else
{
cmdStr = "SELECT TOP " + (n - m + 1) + " * FROM [rockhero] WHERE(id NOT IN(SELECT TOP " + (m - 1) + " [id] FROM [rockhero] ORDER BY ID)) ORDER BY ID";
}
DataSet Selected = new DataSet();
string conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\storage\\apps.accdb";
using (OleDbConnection con = new OleDbConnection(conStr))
{
con.Open();
using (var cmd = new OleDbCommand(cmdStr, con))
{
OleDbDataAdapter s = new OleDbDataAdapter(cmdStr, conStr);
s.Fill(Selected);
}
con.Close();
ArrayList message = new ArrayList();
for (int x = 0; x < Selected.Tables[0].Rows.Count; x++)
{
string msg = "";
for (int y = 0; y < Selected.Tables[0].Columns.Count; y++)
{
msg += Selected.Tables[0].Rows[x][y];
if (y != Selected.Tables[0].Columns.Count - 1)
{
msg += ",";
}
}
message.Add(msg);
}
return message.ToArray();
}
}
else
{
return null;
}
}