Tôi đang cố gắng xóa dữ liệu được tải vào tập dữ liệu và đã liên quan. Đây là mã tôi đã thử.Làm cách nào để xóa dữ liệu có thể định cấu hình khỏi tập dữ liệu (có một loạt các mối quan hệ)
domain.EnforceConstraints = false;
if (domain.Tables["TABLE_NAME"] != null)
{
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables.Remove("TABLE_NAME");
}
domain.EnforceConstraints = true;
Điều này ném ngoại lệ tại điểm loại bỏ bảng, do ràng buộc khóa ngoài hiện có. Thật không may, cách logic là tôi không có ý tưởng những gì tên của ràng buộc là [vì vậy tôi không thể mã cứng nó].
Có cách nào để thực hiện điều này theo cách dễ dàng hơn hoặc tôi có thể nhận được một số đề xuất về cách xác định và loại bỏ ràng buộc gây ra sự cố của tôi.
Xin cảm ơn trước, Steve
-------------------------- TRẢ LỜI ---------- --------------
Tôi không được phép trả lời câu hỏi của riêng mình, vì vậy, đây là giải pháp mà tôi đã đưa ra. Đoạn mã này hiện hoạt động cho tôi. Tôi đã phải đi quan hệ với bảng khác và loại bỏ ràng buộc từ đó.
if (domain.Tables["TABLE_NAME"] != null)
{
for (int f = domain.Tables["TABLE_NAME"].ChildRelations.Count -1; f >=0; f--)
{
domain.Tables["TABLE_NAME"].ChildRelations[f].ChildTable.Constraints.Remove(domain.Tables["TABLE_NAME"].ChildRelations[f].RelationName);
domain.Tables["TABLE_NAME"].ChildRelations.RemoveAt(f);
}
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables["TABLE_NAME"].Constraints.Clear();
domain.Tables.Remove("TABLE_NAME");
}
miền là một tập dữ liệu (kiểu System.Data.Dataset) nhưng có, các dữ liệu ban đầu được nạp từ SQL SERVER 2005 – Steve
@ Chris ông đang làm việc trong bộ nhớ với các đối tượng ADO.NET, cơ sở dữ liệu không có liên quan trong ngữ cảnh này. –
Tôi thấy rằng tôi không cần phải thực hiện ba dòng tên miền.Tables ["TABLE_NAME"]. ChildRelations.Clear(); domain.Tables ["TABLE_NAME"]. ParentRelations.Clear(); domain.Tables ["TABLE_NAME"]. Constraints.Clear(); –