2009-08-26 37 views
7

Nếu tôi có một DataTable và muốn tạo một hàng mới, trước tiên tôi gọi DataTable.NewRow() trả về một DataRow. Hàng này sau đó có lược đồ của Bảng và tôi có thể đặt giá trị của từng trường trong hàng. Tại thời điểm này, Bảng "biết" về Hàng, hay điều đó chỉ xảy ra sau khi tôi gọi DataTable.Rows.Add(DataRow row)?Tôi có thể thêm cùng DataRow vào một DataTable nhiều lần không?

Nếu tôi gọi DataTable.Rows.Add() nhiều hơn thì một khi các hàng trùng lặp được tạo trong bảng dữ liệu có giá trị trùng lặp?

Lý do tôi hỏi là tôi đang cố gắng viết một hàm đệ quy sẽ lặp lại cấu trúc cây và điền một DataTable với các giá trị. Vì vậy, tôi có các tình huống mà các hàng được tạo ra cho mỗi đứa trẻ sẽ có các cột có tất cả các giá trị giống nhau bởi vì chúng đến từ cha mẹ.

Vì vậy, ý tưởng của tôi là chuyển một DataRow với thông tin của cha mẹ cho từng đứa trẻ. Đứa trẻ sẽ thêm thông tin của nó và sau đó thêm hàng vào bảng. Nhưng tôi đang cố gắng tìm hiểu xem tôi có cần gọi số DataTable.NewRow() cho mỗi đứa trẻ hay không hoặc nếu hàng mới sẽ được tạo tự động nếu tôi thêm cùng một hàng nhiều lần.

+0

Wow - hỏi 10 giờ trước, và đã xuất hiện trong google khi tôi đã đi tìm kiếm một điều tương tự. Cảm ơn! – Jeffrey

Trả lời

14

Không, nhưng thật dễ dàng để sao chép một hàng để bạn có thể có được những gì bạn muốn (giả định dòng hiện đang ở trong một biến gọi là existingRow):

var newRow = dataTable.NewRow(); 
newRow.ItemArray = existingRow.ItemArray; 
dataTable.Rows.Add(newRow); 
0

Không, nó sẽ tạo ngoại lệ kiểu System.ArgumentException.

+0

Có cách nào dễ dàng để tạo một DataRow trùng lặp có cùng giá trị không? –

-1

tôi khuyên bạn nên đưa các dữ liệu trong một mảng và sau đó thêm dữ liệu vào bảng dữ liệu ví dụ

yourDataTable.Rows.Add(data[0]........); 

newdatarow sẽ tạo ra lỗi ngoại lệ

Các vấn đề liên quan