Member 10468587 Ответов: 1

Как читать двоичные данные в datatable в C# ?


Используя управление загрузкой файлов, я читаю данные Excel как двоичные данные.

Теперь мне нужно преобразовать двоичные данные в datatable, чтобы сохранить их в БД.

Пожалуйста помочь.


HTML
&ЛТ;входной тип="файл" название="fileChartOfAccounts" НГ-файлов="getTheFiles (файлов)" идентификатор="fileChartOfAccounts" /&ГТ;


клиентская часть кода java script:

$scope.getTheFiles = function ($files) {
       debugger;
       angular.forEach($files, function (file) {
           $scope.filesUploaded.push(file);
       });
       $scope.UploadFilesEnabled = true;
       $scope.$apply();
   };



if ($scope.filesUploaded.length > 0) {
              $("#ModalProcessingSharefileUpload").modal("show");
              var request = {
                  method: 'POST',
                  url: baseUrl + 'api/fileuploadnotedtransaction/UploadFiles',
                  data: formdata,
                  headers: {
                      'Content-Type': undefined
                  }
              };

              // SEND THE FILES.
              $http(request)
                  .success(function (d) {
                      //debugger;
                      $scope.clear();
                      $("#ModalProcessingSharefileUpload").modal("hide");
                  })
                  .error(function (err) {
                      //debugger;
                      $scope.clear();
                      $("#ModalProcessingSharefileUpload").modal("hide");
                  });
          }



Серверная сторона в контроллере

[HttpPost()]
       public void UploadFiles()
       {


           System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;
           for (int iCnt = 0; iCnt <= hfc.Count - 1; iCnt++)
           {
               System.Web.HttpPostedFile hpf = hfc[iCnt];
               BinaryReader b = new BinaryReader(hpf.InputStream);
               byte[] binData = b.ReadBytes(hpf.ContentLength);
               MemoryStream memoryStreamOfFile = new MemoryStream(binData);
               BinaryFormatter formatter = new BinaryFormatter();
               memoryStreamOfFile.Seek(0, SeekOrigin.Begin);
               DataTable dt = (DataTable)formatter.Deserialize(memoryStreamOfFile);

           }
       }


Что я уже пробовал:

Я погуглил его и перепробовал много вещей, но ни одна из них не сработала.

Maciej Los

Я погуглил его и перепробовал много вещей, но ни одна из них не сработала. - А что именно вы пробовали?

Karthik_Mahalingam

опубликуйте код.

Member 10468587

Я знаю тебя с 2013 года. Даже меня зовут Картик. давным-давно у нас был хороший разговор.Отправленный код для вас.

Karthik_Mahalingam

хорошо, проверю и дам вам знать.

Member 10468587

спасибо.

Karthik_Mahalingam

проверьте это http://stackoverflow.com/a/11239895

Member 10468587

ладно.

Karthik_Mahalingam

вам придется использовать библиотеку EPPLus.

Member 10468587

не удалось найти Office open xml dll

Member 10468587

Спасибо тебе

Member 10468587

спасибо тебе

1 Ответов

Рейтинг:
2

Mathew Soji

Возможно, вы можете рассмотреть возможность использования класса SqlBulkCopy, который помогает загружать данные из внешнего источника данных в таблицу SQL Server .

Передача Данных С Помощью SqlBulkCopy[^]

Использование SqlBulkCopy для импорта данных электронных таблиц Excel в SQL Server в ASP.Net с использованием C# и VB.Net[^]

Импорт данных Excel в SQL Server в ASP.NET[^]

Импорт данных MS Excel в таблицу SQL Server с помощью языка C#[^]