HOW TO:編輯 DataTable 中的資料列
若要編輯 DataTable 中現有的資料列,您必須找出要編輯的 DataRow,然後將更新值指派至所要的資料行。
下列範例將示範如何尋找及修改具型別和不具型別之資料集內的資料列。
當您不知道所要編輯之資料列的索引時,編輯 DataTable 中的資料錄
通常,您並不知道想要編輯資料列的索引。 在具型別資料集中,建立資料表時,隨附有 FindBy 方法。這個方法會使用資料表的主索引鍵,尋找資料列。
若要更新具型別資料集中的現有資料錄 (資料列索引未知)
使用產生的 FindBy 方法,將特定 DataRow 指派至變數,然後使用此變數存取所要編輯的資料行,並指派新值給這些資料行。
在下列範例中,CustomerID 資料行是 Customers 資料表的主索引鍵,所以產生的 FindBy 方法是 FindByCustomerID。 這個範例假設您已產生名為 NorthwindDataSet 的具型別資料集,以及擁有名為 northwindDataSet1 的具型別資料集執行個體。
Dim customersRow As NorthwindDataSet.CustomersRow customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI") customersRow.CompanyName = "Updated Company Name" customersRow.City = "Seattle"
NorthwindDataSet.CustomersRow customersRow = northwindDataSet1.Customers.FindByCustomerID("ALFKI"); customersRow.CompanyName = "Updated Company Name"; customersRow.City = "Seattle";;
通常,您並不知道想要編輯資料列的索引。 在不具型別資料集中,建立資料表時,隨附有 Select 方法,這個方法會傳回 DataRow 的陣列。
若要更新不具型別資料集中的現有資料錄 (資料列索引未知)
使用 DataTable 的 Select 方法,尋找特定資料列,並指派新值給所要的資料行。
在下列範例中,CustomerID 資料行是 Customers 資料表的主索引鍵,所以呼叫 Select 方法和搜尋主索引鍵時,只會找到一個資料列。 傳回型別仍然是 DataRow 的陣列,所以我們會存取陣列中的 (0) 索引 (第一個資料列)。 這個範例假設您有名為 dataSet1 的資料集。
Dim customerRow() As Data.DataRow customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'") customerRow(0)("CompanyName") = "Updated Company Name" customerRow(0)("City") = "Seattle"
DataRow[] customerRow = dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'"); customerRow[0]["CompanyName"] = "Updated Company Name"; customerRow[0]["City"] = "Seattle";
當您知道所要編輯之資料列的索引時,編輯 DataTable 中的資料錄
若要使用具型別資料集,更新現有資料錄 (已知資料列索引)
將值指派給 DataRow 物件內的特定資料行。
具型別資料集使用早期繫結 (Early-Binding),會在設計階段將資料表和資料行名稱公開為屬性。 這樣會產生較容易讀取和寫入的程式碼。
以下範例將示範如何更新資料集中 Customers 資料表中第五個資料錄的 CompanyName 和 City 資料行資料。 這個範例假設您已產生名為 NorthwindDataSet 的具型別資料集,以及擁有名為 northwindDataSet1 的具型別資料集執行個體。
NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name" NorthwindDataSet1.Customers(4).City = "Seattle"
northwindDataSet1.Customers[4].CompanyName = "Updated Company Name"; northwindDataSet1.Customers[4].City = "Seattle";
若要更新不具型別資料集中的現有資料錄 (已知資料列索引)
將值指派給 DataRow 物件內的特定資料行。
不具型別資料集的資料表和資料行名稱在設計階段無法取得,而且必須透過其個別索引存取。
以下範例將示範如何更新 dataSet1 中第一個資料表的第五個資料錄中前兩個資料行中的資料。 這個範例假設 dataSet1 中的第一個資料表對應於 Northwind 資料庫的 Customers 資料表,而且這個資料表的前兩個資料行是 CompanyName 和 City 資料行。
DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name" DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
dataSet1.Tables[0].Rows[4][0] = "Updated Company Name"; dataSet1.Tables[0].Rows[4][1] = "Seattle";
以下範例將示範如何更新與先前範例相同的資料,只是將集合索引取代為當做字串傳遞的資料表和資料行名稱: 您仍然必須知道想要編輯資料列的索引。
DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name" DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name"; dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
請參閱
概念
將 Windows Form 控制項繫結至 Visual Studio 中的資料