导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

【关键技术】经过几个月的潜心研究,终于有了成果,客户端不刷新如何直接修改数据库

bobjeey 2003-11-28 02:31:23
用过PB的人都知道,datawindow那强大的功能,程序员只需要在form放置datawindow,就很容易地对数据库进行添加、删除、修改等方面的操作(不需要复杂的sql语句,因为在用户操作的时候已经自动产生相应的sql语句)。

.net中的window application下的datagrid也有datawindow同样的效果,但功能要差些。

然而,web application下的datagrid, datalist, repeater却没有提供多行编辑下这样的功能,很多windows程序员转到bs编程后觉得非常不方便。虽然datagrid提供单行数据修改的 itemcommand,对多条数据更新,如果需要自己做sql语句确实就是很麻烦。

HTC等技术虽然可以在不刷新屏幕的情况下解决部分直接对服务器的操作,但缺少自动产生sql语句的功能。

这也许是需要解决的一个关键技术,因为毕竟我们编程很多跟服务器端数据存取有关,

现在,终于搞定它了,呵呵。
当你修改datagrid中任何一行任何一列记录,这个对象可以是任何控件的数据,textbox, dropdownlist, 还是..... 它的任何值都可以反映到数据库端(可以选择值改变时即修改数据库和修改完后最后统一保存),期间你的页面不会刷新,我将datagrid对象的viewstate完全不要了,传输速度本身就快了很多,而数据修改的时候,更只是仅仅传递被修改的信息......


呵呵,高兴啊。

当然,这个喜悦是sqldataadapter和sqlcommandbuilder这2个函数带来的,
大家好好研究一下吧。
...全文
15 点赞 收藏 38
写回复
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtadminxjeri 2003-11-28
如果拿pb的datawindow来说,它的功能的确强大
但是如果以次贬低DataGrid,那就大错特措了,
DataGrid的可扩展性是Datawindow不可比拟的(pb的面向对象太差)
相信用不了多长时间,越来越多的DataGrid加强会陆续出来,它的控件、组件就像
delphi一样庞大
回复
menuvb 2003-11-28
如果楼主行的话就直接写出代码或思路让大家参考。不要在这里搞飞机。
回复
menuvb 2003-11-28
无聊。
回复
bobjeey 2003-11-28
>>说DataGrid不能进行多行更新--------可笑!!!
只是掌握不精罢了

谢谢你的提醒,我再研究一下,如何利用datagrid现有的功能来更新数据。
回复
wtadminxjeri 2003-11-28
没听说过操纵DataSet吗?
回复
gucs 2003-11-28
基于http协议,不使用xmlhttp,楼主是怎么实现无刷新的?
回复
wtadminxjeri 2003-11-28
说DataGrid不能进行多行更新--------可笑!!!
只是掌握不精罢了
回复
iamfeiyang 2003-11-28
楼主就别卖关子了,既然已经告诉大家你解决了问题,那为什么不直接把解决问题的方法具体讲出来呢?
回复
RxitRose 2003-11-28
没有数据更新的sql描述,只需要对内存表update就可以,这些是sqlcommandbuidler的功劳
通过DataAdapter+commandBuilder,不写更新语句,可以便新DataSet或DataTable这是很正常。
我想知道的就是,既然你要提交就是要刷新啊?
不提交你怎么执行CS里的代码啊?
这个是我一直想要搞明白的:(~~~~~~~~~~
-----------------------------------------------------------------------------
兄弟在http的世界里最后肯定会刷新提交的这是http决定的还有IIS[本身只有两个状态等待请求和响应]
所以WEB程序不管怎么写最后都会去刷新提交到服务器上

回复
eshao 2003-11-28
页面在不刷新的情况下 是可以和服务器交互的。

IE支持XMLHTTP 。利用XMLHTTP可以开端口直接向服务器调用。
以前本人作ASP的时候就已经实现了。

很多无刷新的聊天室好像就是用的这个原理。

还有MSDN的 左边树形菜单,并非一次加载,而是点一个节点 才加载下面的节点,叶面没有任何刷新,CSDN也是这样的。

1.1框下的DATASET好像有个新特性,楼主看了以后估计有更多惊喜







回复
大可山人 2003-11-28
UP
回复
xiandaliu 2003-11-28
我要!
xiandaliu@hotmail.com
回复
RxitRose 2003-11-28
如果真的是我所说的和你所说的一样的话我原码都有
哈哈老外写的
不知各位想不想看看
回复
dong1dong1 2003-11-28
偶记得ASP。NET是可以批处理的。不用这么麻烦吧
回复
0956304127832708 2003-11-28
我急需要这样的东东真是谢谢了。
回复
henryfan1 2003-11-28
没有数据更新的sql描述,只需要对内存表update就可以,这些是sqlcommandbuidler的功劳
通过DataAdapter+commandBuilder,不写更新语句,可以便新DataSet或DataTable这是很正常。
我想知道的就是,既然你要提交就是要刷新啊?
不提交你怎么执行CS里的代码啊?
这个是我一直想要搞明白的:(~~~~~~~~~~
回复
RxitRose 2003-11-28
以我做.net开发1年的经验,你说的那种本来上来讲最好还是要提交到服务器的
只是做了成批更新。我记得。NET中有一个XML构架技术,它可以对数据库中的表关系成生一个
DATASET对象,这个对象就是存在客户端的
你可以在客户端更新修改,添加
但最后还是要能过保成来成批保存在服务器上的数据库中
其实我觉得两种实现都有各自的好处和不好的地方
没有什么谁好,谁不好的
用起来方便就行了
说起来因为http是断开联接的先决条件决定了最后肯定会去提交数据
回复
eshao 2003-11-28
这个东西要几个月? 我做ASP的时候就可以实现了

用XMLHTTP + js 就可以作到了
回复
jasluen 2003-11-28
能不能说一下你是怎样实现的?
my mail:jasluen@163.net
msn: jasluen@21cn.com
回复
stephenli 2003-11-28
能不能说一下你是怎样实现的?
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告