Импорт из excel файла

Добрый день! Есть проблема при импорте данных из excel файла в dataset. При импорте небольших фалов (70 Кб) все происходит отлично. При импорте больших файлов (700 Кб) в гриде, где отображается этот dataset данные идут в непонятном для меня порядке. А именно строки, правильные строки в непонятном порядке(проверял на разных фалах, установить какую-либо закономерность или последовательность в разбросе записей не удалось).
Импортирую следующим скриптом:

function btnImportOnClick(Control) {
        var FileName = GetNewValue();
        if (System.PromptForFileName(FileName,
                        "Файлы Excel" + ' (*.xls;*.xlsx)|*.xls;*.xlsx|'+
                        "Все файлы" + ' (*.*)|*.*', '',
                        msgSelectFileForImport, '', false)) {
                var FileNameValue = FileName.Value;
                var ExlApp = new ActiveXObject("Excel.Application");
                var WorkBook = ExlApp.Workbooks.Open(FileNameValue);
                var TempPriceDS = Services.GetNewItemByUSI('ds_TempPrice');
                TempPriceDS.Open();
                while (!TempPriceDS.IsEOF) {
                        TempPriceDS.Delete();
                }
                TempPriceDS.AutoRefresh = false;
                TempPriceDS.DisableEvents();
                for (var i = 0; i WorkBook.Sheets.Count; i++) {
                        var CurrentSheet = WorkBook.Sheets(i + 1);
                        for (var j = 1; j = CurrentSheet.UsedRange.Rows.Count; j++) {
                                TempPriceDS.Append();
                                for (var e = 1; e = 30; e++) {
                                        TempPriceDS.DataFields.Items(e).Value = CurrentSheet.Cells(j, e).Value;
                                }
                                TempPriceDS.Post();
                        }
                }
                TempPriceDS.AutoRefresh = true;
                TempPriceDS.EnableEvents();
                WorkBook.Close();
                ExlApp.Quit();
                var SupplierWindow = GetSingleItemByCode('wnd_PriceGridArea', null);
                SupplierWindow.Show();
        }
}

Нравится

5 комментариев

Здравствуйте!
Почему Вы решили, что в не правильном? Вы импортируете непосредственно в базу данных, а потом показываете отдельное окно?

Еще раз здравствуйте!
Да я импортирую непосредственно в БД, а потом показываю окно. В окне данные отображаются в непонятном порядке. Проверяю в Microsoft ManagmentStudio - то же самое, порядок АБСОЛЮТНО непонятный.

Здравствуйте!
В реляционных базах данных нет понятия порядка в таблице. Если Вы хотите чтобы данные были в определенном порядке при отображении необходимо использовать сортировку. Другого способа нет.

Доброе утро!
Я хочу сказать, что первая строка excel файла записывается в таблицу какой-нибудь 1386_ой, а на первом месте в записаной таблице стоит строка где-то из середины (или любого другого места) excel файла.

В таблице нет понятия 1386 или еще какой-нибудь позиции. То что Вы видете это только один из способов отображения. В данном случае SQL Server Management Studio.
Если Вы хотите сохранить порядок записей как в файле Excel Вам необходимо добавить колонку с порядковым номером, далее на уровне базы данных так же добавить поле, куда настроить импорт. Далее в запросе, который используется при отображении, установить сортировку. Например так:

select field1, field2, ...
from some_table
order by field_for_order
Показать все комментарии