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

Đề tài: Dùng DataAdapter update multi table , có cách nào không ?

  1. #1
    Ngày gia nhập
    08 2010
    Bài viết
    9

    Question Dùng DataAdapter update multi table , có cách nào không ?

    Xin hỏi không biết có cách nào dùng DataAdapter.update , update từ một DataTable lấy dữ liệu từ nhiều bảng không .

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    51

    Bạn phải code thôi không tự động được đâu.
    Lấy dữ liệu từ nhiều bảng, xử lý, trộn, cập nhật xuống CSDL

  3. #3
    Ngày gia nhập
    08 2010
    Bài viết
    9

    Uhm mình cũng biết chỉ cập nhật được 1 bảng , nhưng hôm qua google "DataAdapter.Update multiple tables" thì sơ sơ thấy là dùng type dataset thì có thể update nhiều bảng , nhưng vì trình độ đọc tiếng anh có hạn , với lại nghĩ điều này là 1 vấn đề lớn nên mới lên diễn đàn hỏi thử , hy vọng có ai hướng dẫn giúp .

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    173

    Code:
    1.public int CreateMigrateDataset(OleDbConnection dbConnDest, ref DataSet ds, int ID)
    2.{
    3.string sourceTableName = TABLE_NAMES[ID];
    4.string destTableName = MIGRATE_TABLE_NAMES[ID];
    5.DataSet dsDest = new DataSet();
    6.string queryString2 = String.Format("select * from {0}; ", destTableName);
    7. 
    8. OleDbDataAdapter daDest = new OleDbDataAdapter();
    9. OleDbCommandBuilder builder = new OleDbCommandBuilder(daDest);
    10.
    11.daDest.AcceptChangesDuringFill = false;
    12.daDest.SelectCommand = new OleDbCommand(queryString2, dbConnDest);
    13.daDest.InsertCommand = builder.GetInsertCommand();
    14.daDest.UpdateCommand = builder.GetUpdateCommand();
    15.daDest.TableMappings.Add("Table", destTableName);
    16.
    17.daDest.Fill(dsDest);
    18.DataTable dtFolder1 = ds.Tables[sourceTableName].Copy();
    19.dtFolder1.TableName = destTableName;
    20. dsDest.Merge(dtFolder1);
    21.
    22. int updateCount = daDest.Update(dsDest, destTableName);
    23.
    24. return updateCount;
    25.}
    Cái này mình thấy trên Google , thực chất của update multiple này là

    Code:
    daSource.AcceptChangesDuringFill = false;
    DataAdapter sẽ không tiếp nhận AcceptChanges command sau khi DataSet được fill nữa vì RowState sẽ ở đúng vị trí DataTable cần thực hiện

    DÒng 15, Map name của bảng thành Table vì 2 bảng cùng tên ( dòng 19 đổi tên ) , nếu 2 bảng không cùng tên có thể bỏ qua
    Dòng 18, tạo thêm 1 bảng dtFolder1 và lấy Schema + Data bằng cách thực hiện Copy command.
    Dòng 20 , gọi 1 Merge command để kết hợp dữ liệu của bảng đích vào với bảng nguồn

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

  1. Dataadapter.update + Datagridview!
    Gửi bởi phuochau trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 25-08-2013, 07:43 PM
  2. Cách update/insert đồng thời vào 2 table có structure khác nhau
    Gửi bởi happi trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 14-08-2012, 10:43 PM
  3. ADO.NET Tạo 1 DataAdapter làm cầu nối cho nhiều table trong C# có được không?
    Gửi bởi MYNAM trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 24-04-2012, 04:52 PM
  4. ADO.NET Không update được trên nhiều table
    Gửi bởi pine8xproit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 10-01-2011, 08:53 AM
  5. Cách update data từ datagrid vào 2 table?
    Gửi bởi who_am_i trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 19-01-2009, 06:19 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