想做一个采购订单编辑的界面,单据分为订单头和订单明细,数据表如下:/*==============================================================*/
/* Table: 订单头 */
/*==============================================================*/
create table tb_POList (
POID int identity,
PONO varchar(24) not null,
VendorID varchar(64) not null,
PODate datetime null,
POStatus varchar(16) null,
PODesc varchar(128) null,
constraint PK_TB_POLIST primary key (POID)
)
go/*==============================================================*/
/* Table: 订单明细 */
/*==============================================================*/
create table tb_POLine (
POLineID int identity,
POID int not null,
GoodsID varchar(128) not null,
Qty smallint not null,
constraint PK_TB_POLINE primary key (POLineID)
)
go原来用的是存储进程,先保存订单头,并返回POID,然后赋值给订单明细,并一条一条循环保存订单明细。
用这个办法不知道如何来编辑原有订单,所以现在想换别的方式来保存单据。特发此帖,想看看有没有别的办法来处理?
/* Table: 订单头 */
/*==============================================================*/
create table tb_POList (
POID int identity,
PONO varchar(24) not null,
VendorID varchar(64) not null,
PODate datetime null,
POStatus varchar(16) null,
PODesc varchar(128) null,
constraint PK_TB_POLIST primary key (POID)
)
go/*==============================================================*/
/* Table: 订单明细 */
/*==============================================================*/
create table tb_POLine (
POLineID int identity,
POID int not null,
GoodsID varchar(128) not null,
Qty smallint not null,
constraint PK_TB_POLINE primary key (POLineID)
)
go原来用的是存储进程,先保存订单头,并返回POID,然后赋值给订单明细,并一条一条循环保存订单明细。
用这个办法不知道如何来编辑原有订单,所以现在想换别的方式来保存单据。特发此帖,想看看有没有别的办法来处理?
解决方案 »
- winform保存时覆盖,我想先删除原先保存的文件,再重新保存
- 类与类的静态变量如何访问呢?
- C#日期控件
- DataGridView 显示问题
- 求一个 vs2003英文版的下载地址 万分感谢
- 求一blog(asp.net+sql)和vs.net2005,提供地址可下就给分,或直接发emailup有分,分不够加++++++++++++++++++++++++++++++++++
- 仅有四行代码的小小问题就给20分哦~
- combobox的问题
- 请问C#写的程序,能不能直接编译成二进制的.EXE文件?
- C#和java有哪些异同点?
- 关于c#调用c++的dll的回调函数的问题,求高手帮忙,分数只有20了。
- Microsoft.Office.Interop.Word.Document 对象的操作
insert into table values (...) select @@identity
语句同时插入并获得插入数据的标识主键。
用Sqlcommand.ExecuteScalar执行
然后在执行其他的insert语句
最好使用SqlTransaction执行多条insert语句。
或传递POID ,POLineID到存储过程,通过charindex分割POLineID修改明细数据
通过POID查询明细数据,用cursor游标遍历修改
begin
if(charindex(',',@XTBH)>0)
begin
set @J=substring(@XTBH,1,charindex(',',@XTBH)-1)
set @XTBH=substring(@XTBH,len(@J)+2,len(@XTBH))
end
else
begin
set @J=@XTBH
break
end
end