C # 다중 탭의 시트 데이터를 읽고 검증하고 SQL Server 테이블에서 가져 오는 방법

architecture c#-4.0 dapper sql-server-2008-r2

문제

여러 탭에서 데이터를 읽어 전자 상거래 카탈로그 데이터를 업로드하고 이러한 데이터를 SQL 서버 테이블에 삽입해야합니다.

C # 및 dapper .net 및 SQL 서버를 사용하여 동일한 방법을 구현하는 가장 좋은 방법은 무엇입니까?

감사합니다 Rakesh

인기 답변

내가 사용한 샘플 코드는 다음과 같다.

using Excel;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Text;

 public partial class UserDashboard : BasePage
 {
    protected void lnkImportExcel_Click(object sender, EventArgs e)
    {
        try
        {
            if (!FpdUnConLoanUpload.HasFile)
            {
                this.DisplayAlert(ref AlertctrlMessage, "Please select an excel (.xlsx) or CSV file.", AlertNotification.Error);
                return;
            }
            if (!FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx") && !FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("csv"))
            {
                this.DisplayAlert(ref AlertctrlMessage, "Please select a valid excel (.xlsx) or CSV file.", AlertNotification.Error);
                return;
            }

            Guid nimgGUID = Guid.NewGuid();
            if (!FpdUnConLoanUpload.FileName.Trim().ToLower().Equals(""))
            {
                if (FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx"))
                {
                    IExcelDataReader iExcelDataReader = null;

                    string TargetPathFileSave = Server.MapPath(ConfigurationManager.AppSettings.Get("ImportFiles"));

                    TargetPathFileSave = TargetPathFileSave + "\\";

                    if (!System.IO.Directory.Exists(TargetPathFileSave))
                    {
                        System.IO.Directory.CreateDirectory(TargetPathFileSave);
                    }

                    TargetPathFileSave = TargetPathFileSave + "\\" + nimgGUID.ToString().Trim() + FpdUnConLoanUpload.FileName.Substring(FpdUnConLoanUpload.FileName.LastIndexOf('.')).ToLower();
                    FpdUnConLoanUpload.PostedFile.SaveAs(TargetPathFileSave);

                    FileStream oStream = File.Open(TargetPathFileSave, FileMode.Open, FileAccess.Read);
                    DataSet dsUnUpdated = new DataSet();
                    if (FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx"))
                    {
                        iExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(oStream);
                        iExcelDataReader.IsFirstRowAsColumnNames = true;
                        dsUnUpdated = iExcelDataReader.AsDataSet();
                        iExcelDataReader.Close();
                    }

                    if (dsUnUpdated != null)
                    {
                        Session["dsUnUpdated"] = dsUnUpdated;
                        LinkProcess.Visible = true;
                        grdSearchData.DataSource = dsUnUpdated;
                        grdSearchData.DataBind();
                    }
                    else
                    {
                        this.DisplayAlert(ref AlertctrlMessage, "No Data Found In File!", AlertNotification.Error);
                    }
   }
        catch (Exception exc)
        {
            lblcount.Text = "";
            this.DisplayAlert(ref AlertctrlMessage, exc.Message, AlertNotification.Error);
        }
    }
    }
}

이제 채워진 데이터 세트 ds에서 시트 당 모든 데이터를 데이터 테이블로 갖게됩니다.

ds에서 데이터 테이블을 탐색하여 db에 저장합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.