1

Webフォームに5つのFileUploadコントロールがあります.2つのSQLサーバーテーブルがあります...

Tbl_ClaimDetails

SrNo | Remark | BrMkrdt

Tbl_ClaimImages

SrNo | Img | Id | ImgName

最初のファイル アップロード コントロールは必須です。たとえば、ユーザーがアップロードする 3 つのファイルを選択した場合、最初のイメージ ファイルを使用してTbl_ClaimDetails、ストアド プロシージャを介してデータを挿入します (SrNoTbl_ClaimDetailsは ID です) 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

このアプローチはうまく機能しています。エラーや問題はありませんが、これよりも良いアプローチがあるかどうか知りたいですか? ご覧のとおり、指定されたテーブルに値を挿入するために 2 つの異なるストアド プロシージャを実行しています。値を挿入するストアド プロシージャは、最初に 1 回だけ実行され、ユーザーがアップロードしている画像の数に応じてTbl_ClaimDetails値を挿入するために、別のストアド プロシージャを何度も実行しています。Tbl_ClaimImages1 回の実行で 1 つのストアド プロシージャを使用して、これらすべてを実行できる可能性はありますか? または、より良いアプローチがありますか?

4

1 に答える 1