我在一个网络表单上有 5 个 FileUpload 控件。我有两个 sql server 表...
Tbl_ClaimDetails
SrNo | Remark | BrMkrdt
Tbl_ClaimImages
SrNo | Img | Id | ImgName
第一个文件上传控制是强制性的。例如,如果用户选择要上传的 3 个文件,则第一个图像文件用于Tbl_ClaimDetails
通过存储过程将数据插入(SrNo inTbl_ClaimDetails
是身份),我将使用SCOPE_IDENTITY()
. 我将此 SCOPE_IDENTITY() 值存储在变量中lastid
现在我正在使用另一个存储过程将数据Tbl_ClaimImages
与 lastid 一起插入到第一个图像中。
if (file1.ContentLength > 0 && (u1 != null || u1 != 0))
{
Stream fs = file1.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
//store procedure inserts data in tbl_claimdetails and return SCOPE_IDENTITY()
lastid = dbo.ExecProc1(claim.Remark, claim.BrMkrdt);
//another stored procedure inserts data in tbl_ClaimImages
dbo.insert(bytes, lastid, file1.FileName);
count++;
}
if (file2.ContentLength > 0 && (u1 != null || u1 != 0))
{
Stream fs = file2.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
dbo.insert(bytes, lastid, file1.FileName);
count++;
}// and so on till file5
这种方法运行良好。我没有任何错误或问题,但我想知道是否有比这更好的方法?如您所见,我正在执行两个不同的存储过程,用于在给定的表中插入值。插入值的存储过程Tbl_ClaimDetails
在开始时只执行一次,然后我一次又一次地执行另一个存储过程以Tbl_ClaimImages
根据用户上传的图像数量插入值。是否有可能在一次执行中使用一个存储过程来完成所有这些工作?还是有更好的方法?