Tôi đang bắt đầu một dự án với asp.net visual studio 2008/SQL 2000 (2005 trong tương lai) bằng cách sử dụng C#.nhập tệp csv/excel vào cơ sở dữ liệu sql asp.net
Phần khó khăn đối với tôi là lược đồ DB hiện có thường xuyên thay đổi và tất cả các cột tệp nhập phải khớp với lược đồ db hiện tại vì chúng có thể không khớp với một tên cột. (Có một bảng tra cứu cung cấp lược đồ bảng có các tên cột mà tôi sẽ sử dụng)
Tôi đang khám phá các cách khác nhau để tiếp cận vấn đề này và cần một số lời khuyên của chuyên gia. Có bất kỳ điều khiển hoặc khung công tác hiện có nào mà tôi có thể tận dụng để thực hiện bất kỳ điều này không?
Cho đến nay tôi khám phá FileUpload NET kiểm soát, cũng như một số các điều khiển bên upload thứ 3 để thực hiện việc tải lên như SlickUpload nhưng các tập tin được tải lên nên < 500mb
phần kế tiếp được đọc của csv của tôi/excel và phân tích cú pháp nó để hiển thị cho người dùng để họ có thể kết hợp nó với lược đồ db của chúng tôi. Tôi thấy CSVReader và những người khác nhưng cho excel của nó khó khăn hơn vì tôi sẽ cần phải hỗ trợ các phiên bản khác nhau.
Về cơ bản Người dùng thực hiện lần nhập này sẽ chèn và/hoặc cập nhật một số bảng từ tệp nhập này. Có các yêu cầu nâng cao khác như kết hợp bản ghi nhưng và xem trước các bản ghi nhập, nhưng tôi muốn hiểu rõ cách thực hiện điều này trước tiên.
Cập nhật: Tôi đã sử dụng csvReader cùng với LumenWorks.Framework để tải lên tệp csv.
có, tôi đang sử dụng máy chủ sql 2000 nhưng cũng cần hỗ trợ máy chủ sql 2005. Tôi không quen thuộc với SqlBulkCopy và sẽ xem xét điều này. Tôi tưởng tượng tôi sẽ cần phải sử dụng cái gì khác để có thể cập nhật – kiev
Ah phải. Vì vậy, bạn cần phải làm cả hai chèn và cập nhật? SqlBulkCopy là công cụ tuyệt vời để chèn rất nhiều dữ liệu vào cơ sở dữ liệu của bạn, nhưng không xử lý các cập nhật trực tiếp. Bạn có thể giải quyết vấn đề này với bảng dàn dựng và một số SQL bổ sung để di chuyển dữ liệu vào bảng mà bạn thực sự muốn sửa đổi. –