Контексте.базы данных.SQL-запрос, чтобы загрузить файл Excel
Привет, я пытаюсь загрузить файл Excel, передавая данные excel в качестве пользовательского типа данных в хранимую процедуру с использованием Entity Framework и кода C# в ASP.Сетевое применение как показано ниже:
public System.Int32 UploadServiceProgram(List<ServicePrograms_Upload> serviceProgList, string Fiscal_Period_Code, string CreatedBy) { DataTable serviceProgramDataTable = new DataTable(); serviceProgramDataTable.Columns.Add("ServiceCode", typeof(string)); serviceProgramDataTable.Columns.Add("ProgramCode", typeof(int)); serviceProgramDataTable.Columns.Add("UnitTypeDesc", typeof(string)); serviceProgramDataTable.Columns.Add("RateCap", typeof(decimal)); serviceProgramDataTable.Columns.Add("CountyCode", typeof(string)); foreach (var item in serviceProgList) { serviceProgramDataTable.Rows.Add(item.Provided_Service_Code, item.Program_Code, item.Unit_Type, item.Rate_Cap); } var parameter = new SqlParameter("@ServiceProgram", SqlDbType.Structured); parameter.Value = serviceProgramDataTable; parameter.TypeName = "dbo.ServicePrograms_UDT"; var parameter2 = new SqlParameter("@Fiscal_Period_Code", SqlDbType.NVarChar, 15); parameter2.Value = Fiscal_Period_Code; var parameter3 = new SqlParameter("@CreatedBy", SqlDbType.NVarChar, 50); parameter3.Value = CreatedBy; using (var context = new CRSContext()) { context.Database.CommandTimeout = 360000; var result = context.Database.SqlQuery<int>("usp_Upload_ServicePrograms @ServiceProgram, @Fiscal_Period_Code, @CreatedBy", parameter, parameter2, parameter3).FirstOrDefault(); return result; } }
Он терпит неудачу по какой-то причине, но тот же файл Excel, который я экспортировал в таблицу, затем создает табличную переменную типа (определяемого пользователем типа), которую я использую, затем вставляет в эту табличную переменную из таблицы, в которой у меня есть данные Excel, затем выполнение хранимой процедуры не терпит неудачи на самом деле импортирует данные как есть, я не уверен, почему хранимая процедура выполняется, но вышеприведенный метод терпит неудачу, в обоих случаях хранимая процедура и Excel одинаковы. Вот как я выполняю хранимую процедуру:
declare @ServiceProgram ServicePrograms_UDT declare @fiscalPeriod nvarchar(15)='FY 2016-2017', @CreatedBy nvarchar(50)='aaleemmo' insert into @ServiceProgram(ServiceCode, ProgramCode, UnitTypeDesc, RateCap, CountyCode) select [service code], [Program Code], [Unit Type], [Rate Cap], [County Code] from SUDCRS..zzServiceProgramCountyExcelData exec dbo.usp_Upload_ServicePrograms @ServiceProgram, @fiscalPeriod, @CreatedBy
И еще одно сомнение, которое у меня есть, когда мой сервис WCF публикует эти огромные данные excel как datatable в базу данных, потеряет ли он данные, когда он публикует огромные данные, если он теряет их, есть ли какой-либо другой подход, который я могу выполнить эту хранимую процедуру.
Пожалуйста, дайте мне знать все, что возможно, предложение, фрагмент кода или даже крошечное предложение, любая вещь помогает, это немного срочно - пожалуйста, большое спасибо.
Что я уже пробовал:
запуск несколько раз, поиск в интернете