熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

讓sqlCommand和SqlDataAdapter合作

2022-06-13   來源: .NET編程 

  有時依照 project 需求我們可能需要從數據庫取得多組 DataTable再自行撰碼以自己想要的格式呈現在 ASPNET 頁面中而非直接綁定至 GridView 控件中時即可參考下列做法

  若要從數據庫的多個 table 中 Join 數據並將撈取的多筆 record (數量不定)多個 column以自訂的格式呈現在 ASPNET 頁面上時我們可先將撈取的數據暫時擱置在內存的多個 DataTable 裡 (一個 DataTable 數組)再依想要的樣式呈現做法可參考本站之前的帖子「使用 ADONET 的 NextResult 方法取得多個 Result Set 」先透過 SqlCommand取得從數據庫多個 table 中 Join 得到的數據再將此SqlCommand 指派給一個 SqlDataAdapter接著透過 SqlDataAdapter 的 Fill 方法將取自多個 table 的數據填入內存裡的多個 DataTable 中 (一個 DataTable 數組)且在 ADONET DataTable 不再需要依附在 DataSet 上重點代碼如下          

 SqlConnection conn = new SqlConnection(WebConfig中的數據庫連結字符串);
        SqlDataAdapter da = new SqlDataAdapter();
        SqlCommand cmd = new SqlCommand();
        cmdConnection = conn;
        cmdCommandText = 這裡填入第一組 SELECT 和 JOIN 等 SQL statement ; ;
        cmdCommandText += 這裡填入第二組 SELECT 和 JOIN 等 SQL statement;
        daSelectCommand = cmd;
        DataTable[] dtArray = new DataTable[]
        {
            new DataTable(第一組 SQL statement 的 table 名稱) new DataTable(第二組 SQL statement 的 table 名稱)
        };
        // Fill(startRecord maxRecords DataTable數組名稱)
        daFill( dtArray);
        connOpen();
        // 將第一個 DataTable (dtArray[]) 的內容呈現在頁面的控件上
        for (int i = ; i < dtArray[]RowsCount; i++)
        {
          // 在這裡將第一個 DataTable 的內容以自訂格式呈現在頁面的控件上
        }
        // 亦可直接將 DataTable 指派給 GridView 控件
        GridViewDataSource = dtArray[]DefaultView;

 


 


From:http://tw.wingwit.com/Article/program/net/201311/14997.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.