求助:C/S中,客户端查询数据库的解决方法

sz168888 2010-10-22 01:04:41
本人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,会减少网络传输的量,但好象会增加客户端开发的难度,分页、翻页等就不能用控件自身的方法了,要单独处理。

求助中,希望大家能给出好的建议,谢谢!

...全文
212 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
悟之思语 2010-10-25
  • 打赏
  • 举报
回复
1、直接连接数据库的连接字符串可用加密存放在客户端,所有不会有密码危险问题
2、通过webservice连接数据库注定要牺牲一些效率
3、查询的数据增加一些条,以减少数据量,比如增加起始、结束日期,默认查1天的数据,查大时间段需要编号条件等等。
4、大数据量尽量分页查询,只传输需要显示的本页数据。
……
同意
zhangming64432 2010-10-25
  • 打赏
  • 举报
回复
用WebService。
dodducs 2010-10-25
  • 打赏
  • 举报
回复
入门级就先用WebService吧。。很简单不用看书,,建个项目一看就会
zrrsj 2010-10-25
  • 打赏
  • 举报
回复
不会啊我也不会5555
sz168888 2010-10-25
  • 打赏
  • 举报
回复
WCF,比较新的技术,当时没看,先研究下再说,多谢楼上的建议,但问题还是没有得到解决
yongchaochu 2010-10-22
  • 打赏
  • 举报
回复
WEBSERVICE
[WebMethod]
public int Add()
{插入数据库操作}
客户端调用就行了
wuyq11 2010-10-22
  • 打赏
  • 举报
回复
安装客户端,连接字符串加密保存到相关位置
wcf ,或者 webservice
考虑数据同步问题
在同步设计中除了第一次同步外,后续的数据变更同步
int64 2010-10-22
  • 打赏
  • 举报
回复
1、直接连接数据库的连接字符串可用加密存放在客户端,所有不会有密码危险问题
2、通过webservice连接数据库注定要牺牲一些效率
3、查询的数据增加一些条,以减少数据量,比如增加起始、结束日期,默认查1天的数据,查大时间段需要编号条件等等。
4、大数据量尽量分页查询,只传输需要显示的本页数据。
……

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧