按一下以給予評分及指教
MSDN
MSDN Library
存取資料
 HOW TO:編輯 DataTable 中的資料列

  開啟低頻寬檢視
本頁僅適用於
Microsoft Visual Studio 2005/.NET Framework 2.0

其他版本也適用於下列軟體:
用戶端和中介層程式設計 - 資料存取
HOW TO:編輯 DataTable 中的資料列

若要編輯 DataTable 中現有的資料列,您必須找出要編輯的 DataRow,然後將更新值指派至所要的資料行。

下列範例將示範如何尋找及修改具型別和不具型別之資料集內的資料列。

當您不知道所要編輯之資料列的索引時,編輯 DataTable 中的資料錄

通常,您並不知道想要編輯資料列的索引。在具型別資料集中,建立資料表時,隨附有 FindBy 方法。這個方法會使用資料表的主索引鍵,尋找資料列。

若要更新具型別資料集中的現有資料錄 (資料列索引未知)

  • 使用產生的 FindBy 方法,將特定 DataRow 指派至變數,然後使用此變數存取所要編輯的資料行,並指派新值給這些資料行。

    在下列範例中,CustomerID 資料行是 Customers 資料表的主索引鍵,所以產生的 FindBy 方法是 FindByCustomerID

    Visual Basic
    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    customersRow.CompanyName = "Updated Company Name"
    customersRow.City = "Seattle"
    
    C#
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    
    customersRow.CompanyName = "Updated Company Name";
    customersRow.City = "Seattle";;
    
    J#
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.get_Customers().FindByCustomerID("ALFKI");
    
    customersRow.set_CompanyName("Updated Company Name");
    customersRow.set_City("Seattle");
    

通常,您並不知道想要編輯資料列的索引。在不具型別資料集中,建立資料表時,隨附有 Select 方法,這個方法會傳回 DataRow 的陣列。

若要更新不具型別資料集中的現有資料錄 (資料列索引未知)

  • 使用 DataTableSelect 方法,尋找特定資料列,並指派新值給所要的資料行。

    在下列範例中,CustomerID 資料行是 Customers 資料表的主索引鍵,所以呼叫 Select 方法和搜尋主索引鍵時,只會找到一個資料列。傳回型別仍然是 DataRow 的陣列,所以我們會存取陣列中的 (0) 索引 (第一個資料列)。

    Visual Basic
    Dim customerRow() As Data.DataRow
    customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'")
    
    customerRow(0)("CompanyName") = "Updated Company Name"
    customerRow(0)("City") = "Seattle"
    
    C#
    DataRow[] customerRow = 
        dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
    
    customerRow[0]["CompanyName"] = "Updated Company Name";
    customerRow[0]["City"] = "Seattle";
    
    J#
    DataRow[] customerRow = 
        dataSet1.get_Tables().get_Item("Customers").Select("CustomerID = 'ALFKI'");
    
    customerRow[0].set_Item("CompanyName", "Updated Company Name");
    customerRow[0].set_Item("City", "Seattle");
    

當您知道所要編輯之資料列的索引時,編輯 DataTable 中的資料錄

若要使用具型別資料集,更新現有資料錄 (已知資料列索引)

  • 將值指派給 DataRow 物件內的特定資料行。

    具型別資料集使用早期繫結 (Early-Binding),會在設計階段將資料表和資料行名稱公開為屬性。這樣會產生較容易讀取和寫入的程式碼。

    以下範例將示範如何更新資料集中 Customers 資料表中第五個資料錄的 CompanyNameCity 資料行資料:

    Visual Basic
    NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name"
    NorthwindDataSet1.Customers(4).City = "Seattle"
    
    C#
    northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
    northwindDataSet1.Customers[4].City = "Seattle";
    
    J#
    northwindDataSet1.get_Customers().get_Item(4).set_CompanyName("Updated Company Name");
    northwindDataSet1.get_Customers().get_Item(4).set_City("Seattle");
    

若要更新不具型別資料集中的現有資料錄 (已知資料列索引)

  • 將值指派給 DataRow 物件內的特定資料行。

    不具型別資料集的資料表和資料行名稱在設計階段無法取得,而且必須透過其個別索引存取。

    以下範例將示範如何更新 Dataset1 中第一個資料表的第五個資料錄中前兩個資料行中的資料,並使用資料表、資料列及項目 (資料行) 集合索引來存取資料值:

    Visual Basic
    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    C#
    dataSet1.Tables[0].Rows[4].ItemArray[0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4].ItemArray[1] = "Seattle";
    
    J#
    dataSet1.get_Tables().get_Item(0).get_Rows().get_Item(4).
        get_ItemArray().set_Item(0, "Updated Company Name");
    
    dataSet1.get_Tables().get_Item(0).get_Rows().get_Item(4).
        get_ItemArray().set_Item(1, "Seattle");
    

    以下範例將示範如何更新與先前範例相同的資料,只是將集合索引取代為當做字串傳遞的資料表和資料行名稱:您仍然必須知道想要編輯資料列的索引:

    Visual Basic
    DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name"
    DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
    
    C#
    dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name";
    dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
    
    J#
    dataSet1.get_Tables().get_Item("Customers").get_Rows().get_Item(4).
        set_Item("CompanyName", "Updated Company Name");
    
    dataSet1.get_Tables().get_Item("Customers").get_Rows().get_Item(4).
        set_Item("City", "Seattle");
    

請參閱

社群內容   什麼是社群內容?
新增內容 RSS  註解
Processing
© 2009 Microsoft Corporation. 著作權所有,並保留一切權利。 使用規定  |  商標  |  隱私權聲明
Page view tracker