各路高手帮看看

nightmaple 2010-11-02 11:07:27
http://topic.csdn.net/u/20101102/10/2f50ffbe-9eb5-443a-a455-fe401fcce823.html?92538

.net版有点冷,大家帮忙看看啊~谢了~
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-11-02
  • 打赏
  • 举报
回复
CREATE TABLE #TP
(
AutoId INT,
ModuleId INT,
SEQ INT,
DisplayName VARCHAR(10)
)

INSERT INTO #TP
SELECT 134,7001,1,'Work'
UNION ALL
SELECT 135,7001,3,'Work'
UNION ALL
SELECT 136,7001,6,'Work'
UNION ALL
SELECT 137,7002,4,'Work'
UNION ALL
SELECT 138,7002,9,'Work'
UNION ALL
SELECT 139,7003,8,'Work'

SELECT * FROM #TP t

UPDATE t
SET SEQ=T.ROW
FROM (SELECT *,ROW_NUMBER()OVER(PARTITION BY MODULEID ORDER BY AUTOID) ROW
FROM #TP) t

SELECT * FROM #TP t

AutoId ModuleId SEQ DisplayName
----------- ----------- ----------- -----------
134 7001 1 Work
135 7001 2 Work
136 7001 3 Work
137 7002 1 Work
138 7002 2 Work
139 7003 1 Work

(6 row(s) affected)
nightmaple 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
SQL code
--不管数据库怎么存,读取的时候动态生成就行了。
--修改或删除都会在重新帮顶一次吧,这样就会联系了。
select Seq=row_number() over(partition by ModuleId order by AutoId) from tb
[/Quote]

不能在用的时候才生成的,因为有别的表要引用,而是是个关键字段。
「已注销」 2010-11-02
  • 打赏
  • 举报
回复
seq=row_number()over(partition by ModuleId order by getdate())
----------
这样seq每次都是顺序的了,你试试。
黄_瓜 2010-11-02
  • 打赏
  • 举报
回复
--不管数据库怎么存,读取的时候动态生成就行了。
--修改或删除都会在重新帮顶一次吧,这样就会联系了。
select Seq=row_number() over(partition by ModuleId order by AutoId) from tb
nightmaple 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zsh0809 的回复:]
保存的时候去Gridview行号作为seq不行么?
有分页就计算上当前页乘上每页的Items
[/Quote]

数据库中是这样的,是按ModuleId筛选后放到DataTable再与DataGridView关联。
要实现的功能说起来也简单,就是删除某几条记录后,Seq号仍然是从1开始连续的。
AutoId	ModuleId	Seq	DisplayName
134 7001 1 Work Order No
135 7001 2 Style No
136 7001 3 Order Qty
137 7001 4 Cut Qty
138 7001 5 Previous Qty1
139 7001 6 Current Qty1
140 7001 7 Total Qty1
141 7001 8 Balance Qty1
214 7002 1 Worker No
215 7002 2 Name
216 7002 3 Other Name
217 7002 4 Department Code
218 7002 5 Department Name
「已注销」 2010-11-02
  • 打赏
  • 举报
回复
保存的时候去Gridview行号作为seq不行么?
有分页就计算上当前页乘上每页的Items

nightmaple 2010-11-02
  • 打赏
  • 举报
回复
改成直接修改DataTable的数据就没问题了,

只是有点想不通为什么从DataGridView修改数据,MessageBox.Show出来的DataTable数据有改动过也是对的,更新到数据库就变了。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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