使用中关於gridview的三个问题
关键词:gridview,asp net,cs,textbox,radiobutton,button,net,Dreamweaver,asp,connection,dataset,reader,load
dotnetworker:
我现在使用asp.net 开始做一些程序,属于初级水平,以前一直做cs结构的
我现在做一个程序,很简单,上面有几个textbox和radiobutton之类的,由用户自己设置查询的内容,然后点击后面的button,将查询结构显示在gridview中,为了灵活,我不是用的绑定的方式,都是自己写的代码。
问题1:将gridview拖放到页面上后,好象用鼠标并不能随意的放到任何位置上,放上就不动了,其它的控件也是一样的,我想问问大家,您们在.net里是怎样设计界面的? 曾听说有让用 Dreamweaver 设计界面的,可是我用这个打开后,gridview显示的是“asp”的一个小图标 这样怎样设计啊,我晕了,呵呵
问题2:我的代码如下:
定义 connection 定义 dataset ...
Dim TrainAdapter As SqlDataAdapter = New SqlDataAdapter(StrTrainSearch, TrainConn)
TrainAdapter.Fill(TrainDataSet, "Train"<img src=http://www.itpub.net/images/smilies/23.gif smilieid="206" border="0" alt="" />
GridView1.DataSource = TrainDataSet.Tables("Train"<img src=http://www.itpub.net/images/smilies/23.gif smilieid="206" border="0" alt="" />
GridView1.DataBind()
最后释放若干对象...
--------------------------
印象中好象有个帖子说用dataset速度不快,用reader什麽的速度快
我这个地方只有一个查询,其它什麽功能都没有,
我就是要以最快的速度查询并显示出来,我这里能用那个reader吗?
假如能的话,我应当怎样改呢?感谢
问题三:还是关於速度的问题
我的查询页面是在一个框架结构中的,框架分为上下结构,
上面是菜单之类的,下面是这个查询页,
在查询页的load事件里,我调用了查询的过程,默认显示出一些数据来,
但是我发现,第一次显示时速度很慢,当点击开这个页面时,
框架上方的页面很快就显示出来了,但是下面的查询页面需要很长时间才能查询出来,在这之前下面是一片空白,会让人误觉得是没内容呢
我设想能有个什麽方法来解决这个问题,比如,一开始显示出一个空的表格或其它什麽,告诉用户“正在查询请稍后”,然后当查询完成时,再显示出结果来,
我也不知道这个技术应当用到什麽,所以也不知道该搜些什麽信息,
只好过来发个贴了
另:这个程序,代码很简单,查询的数据量也很小,一般几十行,最多也就几百行,用的是sql2000的数据库,但是页面的使用频率会很高,所以我希望以最快的速度将结果展现出来,在这方面有什麽应注意的地方,请大家指教一下。
smartpig:
问题1:这个不懂,从不做界面
问题2:...
这样改...
Dim TrainCommand As SqlCommand = New SqlCommand(StrTrainSearch, TrainConn)
TrainConn.Open
GridView1.DataSource = TrainCommand.ExecuteReader()
GridView1.DataBind()
TrainConn.Close()
问题三:还是关於速度的问题
使用存储过程替代SQL语句
假如用户访问的数据差不多同样,考虑使用缓存
ziyi0808:
第一题
打开一个页面,选择 布局--位置--自动定位选项--相对位置
第二题
当设计应用程序时,要考虑应用程序所需功能的等级,以确定使用DataSet或是DataReader。
要通过应用程序执行以下操作,就要使用DataSet:
1) 在结果的多个离散表之间进行导航。
2) 操作来自多个数据源(例如,来自多个数据库、一个XML文件和一个电子表格的混合数据)的数据。
3) 在各层之间交换数据或使用XML Web服务。与DataReader不同的是,DataSet能传递给远程客户端。
4) 重用相同的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。
5) 每条记录都需要执行大量处理。对使用DataReader返回的每一行进行扩展处理会延长服务于DataReader的连接的必要时间,这影响了性能。
6) 使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。
对于下列情况,要在应用程序中使用DataReader:
1) 不需要缓存数据。
2) 要处理的结果集太大,内存中放不下。
3) 一旦需要以仅向前、只读方式快速访问数据。
注填充DataSet时,DataAdapter使用DataReader。因此,使用DataReader取代DataSet提升的性能表现为节省了DataSet占用内存和填充DataSet需要的循环。一般来说,此性能提升只是象征性的,因此,设计决策应以所需功能为基础。
第三题
可以做一个进度条滚动的图片,google or baidu 一下,很多这方面的资料
ziyi0808:
至于二楼所说
GridView1.DataSource = TrainCommand.ExecuteReader()
GridView1.DataBind()
这个问题
TrainCommand.ExecuteReader()返回的是SqlDataReader对象 而SqlDataReader只是提供了一个数据的只读的指向,是不能拿来直接给GridView进行赋值并绑定的。