首页 新闻 搜索 专区 学院

存储过程,订单

0
悬赏园豆:10 [已解决问题] 解决于 2012-07-06 11:31
我要写一个存储过程,就是上面的订单,表头和gridview中数据分别存入订单明细表,并更新goods数量,请各位
我在等的主页 我在等 | 初学一级 | 园豆:140
提问于:2012-06-30 15:26
< >
分享
最佳答案
0

用2个存储过程来保存吧,一个保存台头,一个保存明细(一笔一笔保存) 。

建议使用参数化 ,具体怎么写我列个简单示例

Header 表

ID  TabkeKey  XX    YY   GOODS

Detail 表

ID  Table1Key  ZZ   Good

其中Table1Key与Header表ID关联。

--保存Header (保存Detail类似)

If Exists(Select Top 1 AA From Table1 Where TableKey=@Kkey)

  Update Table1 Set XX=@XX,YY=@YY 

  --如果有必要  OUTPUT inserted.ID 自动ID

  Where TableKey=@Kkey

Else 

  Insert into Table1(TableKey,XX,YY)

 --如果有必要  OUTPUT inserted.ID 自动ID

 

  Select @Kkey,@XX,@YY

如果台头有GoodS数量要更新,只需要在第二个存储过程添加一句

--并更新goods数量

   Update Table1  Set Goods=(Select Sum(Good) From Table2 Where Table1Key=@key) 

  Where TableKey=@Kkey

说明

先保存台头,最好返回自动ID,无需管Goods数量,Goods由存储过程2(保存明细的时候顺便更新即可,这样安全可靠点)

保存明细的时候,也将台头的自动ID保存。

收获园豆:10
Shannon | 小虾三级 |园豆:611 | 2012-07-02 16:27
其他回答(1)
0

这里,订单数据应该好定义的,你的疑问是问多条订单明细的时候,怎么把数据传递到存储过程吧?

使用XML数据对象进行传输就好。

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

谢谢回答哈,可是我不会xml啊

支持(0) 反对(0) 我在等 | 园豆:140 (初学一级) | 2012-07-01 09:10

@我在等: 。。。

无语哦!都什么年代了,你不会XML?无论你做什么开发,现在都基本离不开XML,至少也会设计到XML。而且,你做.NET开发。。。你说你不会XML,那。。。还是别做了!

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-07-01 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册