Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Thêm row của datatable này vào datatable khác

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    22

    Mặc định Thêm row của datatable này vào datatable khác

    Chào các bạn,
    Mình có một datatable A có vài dòng dữ liệu. Mình duyệt qua từng dòng trong A rồi add vào datatable B mà sao không được. Mình làm như thế này:

    DataSet ds = new DataSet();
    DataTable A = ds.Tables.Add("A");
    DataTable B = ds.Tables.Add("B");
    string str="SELECT * FROM SINHVIEN";
    SqlCommand sqlCommand = new SqlCommand(str, sqlConnection);
    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
    sqlDataAdapter.Fill(ds.Tables["A"]);

    //Chuyen tu datatable A sang datatable B
    foreach (DataRow row in A.Rows)
    {
    DataRow r = B.NewRow();
    r=row;
    B.Rows.Add(r);
    }

    Mình biết là lệnh trong vòng lặp foreach bị sai ở chỗ nào đó,mong các bạn giúp đỡ.
    Cảm ơn các bạn nhiều.

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    29

    Nếu không lầm thì bạn nhận dc cái Exception là 'Input array is longer than the number of columns in this table.' đúng không ?

    Theo code của bạn thì DataTable B của bạn không thấy có khai báo column, nên khi bạn add vô nó ko bik đổ dữ liệu ra làm sao.
    Thêm vào đó là việc đổ rows từ table này sang table khác không dc. Lúc đó cái row đó sẽ không biết thuộc về table nào.
    Bạn nên nhớ dòng r = row không có nghĩa là copy ra 1 dữ liệu r giống với row mà chỉ là trỏ biến r tới ô địa chỉ của biến row thôi. Nên thật sự r và row trong lúc này cùng trỏ tới cùng 1 dữ liệu, nên khi bạn add kiểu đó, cái row đó sẽ ko hiểu thuộc về table nào

    Chịu khó copy dữ liệu tay nha bạn

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    22

    Đúng là Exception như bạn nói. Nhưng khai báo column như thế nào cho đúng , Bạn chỉ mình rõ hơn một chút với.

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    29

    Cho mình hỏi cụ thể cấu trúc table của bạn trong database có cấu trúc ra sau được không.
    Nhưng căn bản thì cách add 1 column như sau

    B.Columns.Add(new DataColumn("Column name", typeof(string)));

    trong đó chỗ 'Column name' bạn thay bằng column của bạn, chỗ 'typeof(string)' thì bạn thay kiểu dữ liệu phù hợp với cột đó. Add cho đủ những cột trong database ở table 'SinhVien' của bạn là ok. nhớ đừng có đổ dữ liệu theo kỉu r=row nha. Nếu cần thì bạn có thể dùng :

    r.ItemArray = row.ItemArray; // lúc này thì nó copy dữ liệu qua, ko như cách vik kia của bạn

    Ngoài ra nếu bạn làm biến add từng cột từ Datatable từ A sang B thì có thể dùng đoạn code này sau khi fill từ adapter từ database vào A :

    DataColumn[] temp = new DataColumn[A.Columns.Count];
    A.Columns.CopyTo(temp,0);
    B.Columns.AddRange(temp);

  5. #5
    Ngày gia nhập
    06 2011
    Bài viết
    22

    Cảm ơn Bạn rất nhiều, Mình làm theo cách bạn được rồi.

  6. #6
    Ngày gia nhập
    03 2011
    Nơi ở
    Huế
    Bài viết
    37

    Mặc định Thêm row của datatable này vào datatable khác

    Có một số ví dụ này có thể giúp bạn:
    1. Tạo bảng tableB có cấu trúc giống bảng tableA.
    DataTable tableB = tableA.Clone();

    2. Copy DataRow từ bảng này sang bảng khác:
    DataRow drA = tableA.Rows[i];
    tableB.ImportRow(drA);
    (Bạn không thể dùng tableB.Rows.Add(drA) trong trường hợp này)

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    29

    Ồ, thank bạn tnphong, học thêm từ bạn nhiều cái mới
    Bạn cho mình mượn một cánh tay để cùng nhau phát triển ngành CNTT VN được không ?
    Website: http://thuc.com.vn
    Email: info@thuc.com.vn
    Yahoo: thucdongle
    Phone number: 0122.3038.563

Các đề tài tương tự

  1. Hỏi về Datatable
    Gửi bởi trungpq87 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 12-03-2013, 10:03 PM
  2. Xin hướng dẫn add 1 DataTable ( IList,IEnumable) vào 1 DataTable có sẵn trên DataSet
    Gửi bởi billsang trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 09-11-2012, 02:44 PM
  3. ADO.NET Thêm một row mới vào datatable như thế nào
    Gửi bởi tuanvu_n trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 22-11-2011, 09:38 PM
  4. Database Thêm một dòng vào DataTable không được !
    Gửi bởi bingopingu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 06-07-2011, 07:27 PM
  5. Tạo 1 datatable mới nguồn từ 1 datatable cũ.
    Gửi bởi cyd_really trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 06-08-2010, 06:55 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn