求助:C/S中,客户端查询数据库的解决方法
本人C#编程属于入门级,所以问题可能提的不够准确,请各个见谅.
最近想做一个C/S结构的软件,出现了客户端查询数据库的问题,特向大家请教下,看看有什么好的解决方法吗?
查过C#网络应用编程的书,里面提到的方法是采用流的方式,如异步TCP编程.服务器端在互联网上的,所以异步还是值得采用的方式.
流的方式当然对于单次小数据的传输比较理想,如聊天.但如果是查询数据库,尤其是数据较多时就不知道什么方式比较合适了.现在我查到的几种方式是:
1、客户端直接连接服务器端的数据库如SQL,取得数据源后,直接对本地数据控件进行绑定。
2、(这个方法是估计的,因为有些内容还没细查),客户端异步TCP向服务器端发出请求,服务器端查询SQL,得到数据源对象,然后序列化(这步不确定,因为还没查资料),然后以流的方法传给客户端,客户端反序列化,得到数据源对象,再对本地的数据控件进行绑定。
3、服务器端利用apsx,查询数据库,并显示,客户端增加一个WebBrowser控件,直接显示服务器的aspx页面。
方法1中客户端会出现数据库的密码,感觉安全性上不是很理想。
方法1、2都会存在这样的现象,比方有10万条文章,分页显示,每页20条。如果用1、2的方式,每次显示一页,向服务器请求的数据源应该都是10万条的,而其实每次只需要看到20条的,这样好象很浪费。
方法3,当然比较简单一点的实现了,但是要单独为服务器端设计aspx的页面。
写到这又总结想了下,也可能会有这样的方式,
4、直接说分页的问题,服务器端先把总的文章条数传给客户端,客户端就可以得到总的页数,客户端请求时把页码传给服务器端,服务器端根据页码在数据库中查询得到一个小的20条的数据源再传给客户端,客户端再绑定。
方法4,会减少网络传输的量,但好象会增加客户端开发的难度,分页、翻页等就不能用控件自身的方法了,要单独处理。
求助中,希望大家能给出好的建议,谢谢!