我的客户端C#app中有5个列的集合。在DB中,我创建了一个包含六列的用户定义表类型(UDTT)。第一列是一个自动增量,我将用它来获取存储在其中的每一行。表结构为pSelCRSInfo
while(@cntr <= @pProgDuration)
begin
select
@CRSID=CRSID,
@YearNo=YearNo,
@IsCompulsory=IsCompulsory,
@EntDT=EntDT,
@EmpID=EmpID
from @pSelCRSInfo where CntrNo=@cntr
insert into DefaultCourses
(PRGID,CRSID,YearNo,IsCompulsory,EntDT,EmpID)
values (@newPRGID,@CRSID,@YearNo,@IsCompulsory,@EntDT,@EmpID)
set @cntr = @cntr + 1
end
在我的定义中我添加了
create type dbo.SelectedCourses
as table
(
CntrNo int not null IDENTITY(1, 1),
CRSID int,
YearNo int,
IsCompulsory varchar(20),
EntDT datetime,
EmpID int
);
go
目前我正在努力解决如何将5列收集传递到需要6列的集合?
人们通常会创建带有自动增量列的UDTT结构来接受集合吗?因为我可以从客户端生成自动增量列生成的数字,然后将其与集合
一起发送感谢
答案 0 :(得分:0)
我会说这完全取决于你。如果自动递增的值适合您的目的,那么一定要使用它们。我做到了。
答案 1 :(得分:0)
所以假设我已经创建了一个带有自动增量列的UDTT,那么我仍然应该像下面那样传递6个列集合并将第一列留空
//leave the first column empty
acd.dtCourses.Rows[CollCounter][0] = string.Empty
acd.dtCourses.Rows[CollCounter][1] = dt.Rows[i][2];
acd.dtCourses.Rows[CollCounter][2] = dt.Rows[i][3];
acd.dtCourses.Rows[CollCounter][3] = dt.Rows[i][4];
acd.dtCourses.Rows[CollCounter][4] = DateTime.Today;
acd.dtCourses.Rows[CollCounter][5] = myAcedemics.EmpID;
dtCourses
是datatable
来接受该集合,而我的acd
是商家类的对象Academics