严格上说,这里主要和数据绑定没什么关系了。主要内容是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; } }