首页 新闻 搜索 专区 学院

有没有老鸟指教一下数据库的问题,先谢谢啦

0
悬赏园豆:50 [待解决问题]

现在遇到三个难题鸟。。
第一个问题是:一个是在一张表内,有57个字段。是不是有些太多了,会不会有什么太大的影响,需要怎么调整么
第二个问题是:上面这张表会被一些人在GridView中看到,并且做编辑,编辑的时候是在另外的一个页面,怕是会造成两个人改同一条记录,本来想在进入这个页面的时候更改数据库里面的信息做一个标记,但是怕页面被其他方式关闭或离开,没有把这个标记改掉,这样这条数据就会丢失了吧。。有什么有什么办法解决这个问题呀。
第三个问题是:前一段时间勉强做了一个先用着,大概有个1000条数据,但是在GridView的一个页面非常的卡,网速慢的时候可能进不去的样子,查询语句用到了函数和inner join 等都是关联到别的表的数据,这样关联的字段大概貌似有8、9个的样子吧,有没有办法能够查询的快一些呢。现在那个页面都没法用了。

微笑的辛翼的主页 微笑的辛翼 | 初学一级 | 园豆:111
提问于:2012-06-16 08:06
< >
分享
所有回答(3)
1

1、57个字段并不算多,真的有需要这样做也无可厚非,不过,还是检查看,是否在定义上有冗余,此外,如果你害怕多了,就用两个表做一对一的关联吧,把不常用的字段弄出去。

2、没有什么更好的办法,一般都是通过时间戳的形式来保证数据更新的时候不去更新上次读取以来被别人更新过的数据。解决这个问题的最好办法就是使用特权。

3、。。。这个问题无语!

a、你不会一次性的把1000条都列表出来吧?

b、对于字段多的记录,可以分多个UI来实现修改,类似于步骤。。。太多的字段在一个UI里修改,这个设计。。。明显有很大的问题。

无之无 | 园豆:5085 (大侠五级) | 2012-06-16 08:40

第三个问题不知道要怎么解决好。。

我用的是 GridView 控件,可以自动分页的,具体的数据应该是一次全读出来吧。。不知道有没有什么办法控制呢

支持(0) 反对(0) 微笑的辛翼 | 园豆:111 (初学一级) | 2012-06-16 09:25

@微笑的辛翼: 分页读数据吧,这个问题最好自己来实现,GRIDVIEW的 自动分页有时你会想哭的。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-16 09:39

@微笑的辛翼: 使用GridView分页你会哭得喊爹喊娘的。。。。。

GridView的分页机制是 先把1000条数据全部读取出来,然后更具界面需要,显示15条/20条等等

假设你数据库有10000条数据。。。。GridView 是假分页。。。。

使用repeater或者datalist分页显示吧。。。。。

支持(0) 反对(0) 土豆屋 | 园豆:354 (菜鸟二级) | 2012-06-16 16:16
0

紧跟着老大的回答补充第三条。  GridView分页默认是吧所有的数据都一次性的读出来。你可以用sql语句每次制度出当前页显示的数据。 还是别用gridview了,listview分页很不错的 ,如果是vs2005 可以用apsnetpage  或者手写 。混点分啊嘎嘎。。不然没法问了。

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        <Author,,Name>-- Create date: <Create Date,,>-- Description:    <Description,,>-- =============================================CREATE PROCEDURE [dbo].[MemoPage]    -- Add the parameters for the stored procedure here    @pizindex int,    @agesize  intASBEGIN    -- SET NOCOUNT ON added to prevent extra result sets from    -- interfering with SELECT statements.    DECLARE @sql nvarchar(1000)    set @sql= 'SELECT TOP '+ cast( @pizindex as nvarchar(10))+ ' * FROM memo WHERE MemoId NOT IN ( SELECT TOP '+ cast(@pizindex*(@agesize-1) as nvarchar(10)) + ' MemoId FROM memo)'    EXEC(@sql)END

简单的分页存储过程

单音节 | 园豆:30 (初学一级) | 2012-06-16 08:58

怎么用这个储存过称呢 -0-

数据库都是自学的,没弄过呀

支持(0) 反对(0) 微笑的辛翼 | 园豆:111 (初学一级) | 2012-06-16 09:26

@微笑的辛翼:  你也可以写语句啊   把里面的变量替换了

支持(0) 反对(0) 单音节 | 园豆:30 (初学一级) | 2012-06-28 11:32
0

我這裡 有分頁的 http://www.cnblogs.com/Teco/archive/2012/06/14/2548279.html你可以看看。存儲過程。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-06-16 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册