首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 資料教程 66:批次新增資料實作-動態介面、事務包裝、DropDownList 預設值與硬編碼欄位

     編輯:關於ASP.NET

前言

處理大量同類資料新增(如同一供應商、分類的多筆產品)時,單筆新增介面效率低、易錯。本文實作批次新增介面:一次選擇供應商/分類,輸入多筆產品名稱/價格,按鈕送出,以事務確保原子性。

介面設計

  • 顯示區:GridView 列出現有產品,「處理出貨」按鈕切換至新增介面。
  • 新增區:Panel 包含:
    • 供應商、分類 DropDownList(共用設定)
    • 多行產品名稱/單價 TextBox 陣列
    • Discontinued、UnitsOnOrder 硬編碼為 False、0
    • 「新增產品」、「取消」按鈕

步驟 1:建立雙 Panel 切換邏輯

<asp:Panel ID="DisplayInterface" runat="server">
    <asp:GridView ID="gvProducts" ... />
    <asp:Button ID="btnProcessShipment" Text="處理出貨" OnClick="btnProcessShipment_Click" />
</asp:Panel>

<asp:Panel ID="InsertInterface" runat="server" Visible="false">
    <!-- 供應商/分類 DDL -->
    <asp:DropDownList ID="ddlSuppliers" ... />
    <asp:DropDownList ID="ddlCategories" ... />
    <!-- 動態產品輸入列 -->
    <asp:Button ID="btnAddProducts" Text="新增產品" OnClick="btnAddProducts_Click" />
    <asp:Button ID="btnCancel" Text="取消" OnClick="btnCancel_Click" />
</asp:Panel>

步驟 2:事務包裝批次新增 (BLL)

[System.ComponentModel.DataObjectMethodAttribute
    (System.ComponentModel.DataObjectMethodType.Insert, true)]
public void InsertProductsWithTransaction(
    int supplierID, int categoryID, 
    List<string> productNames, List<decimal> unitPrices)
{
    using (TransactionScope scope = new TransactionScope())
    {
        foreach (var i in Enumerable.Range(0, productNames.Count))
        {
            if (!string.IsNullOrEmpty(productNames[i]))
            {
                productsAdapter.Insert(
                    productNames[i], supplierID, categoryID,
                    "預設包裝", unitPrices[i], 0, 0, 0, false);
            }
        }
        scope.Complete(); // 全部成功才 Commit
    }
}

結語

批次新增介面結合事務,大幅提升大量同屬性資料錄入效率與正確性。Panel 切換模式簡單實用,TransactionScope 確保資料一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved