Добрый день! Есть проблема при импорте данных из excel файла в dataset. При импорте небольших фалов (70 Кб) все происходит отлично. При импорте больших файлов (700 Кб) в гриде, где отображается этот dataset данные идут в непонятном для меня порядке. А именно строки, правильные строки в непонятном порядке(проверял на разных фалах, установить какую-либо закономерность или последовательность в разбросе записей не удалось).
Импортирую следующим скриптом:
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();
}
}
Нравится
Здравствуйте!
Почему Вы решили, что в не правильном? Вы импортируете непосредственно в базу данных, а потом показываете отдельное окно?
Еще раз здравствуйте!
Да я импортирую непосредственно в БД, а потом показываю окно. В окне данные отображаются в непонятном порядке. Проверяю в Microsoft ManagmentStudio - то же самое, порядок АБСОЛЮТНО непонятный.
Здравствуйте!
В реляционных базах данных нет понятия порядка в таблице. Если Вы хотите чтобы данные были в определенном порядке при отображении необходимо использовать сортировку. Другого способа нет.
Доброе утро!
Я хочу сказать, что первая строка excel файла записывается в таблицу какой-нибудь 1386_ой, а на первом месте в записаной таблице стоит строка где-то из середины (или любого другого места) excel файла.
В таблице нет понятия 1386 или еще какой-нибудь позиции. То что Вы видете это только один из способов отображения. В данном случае SQL Server Management Studio.
Если Вы хотите сохранить порядок записей как в файле Excel Вам необходимо добавить колонку с порядковым номером, далее на уровне базы данных так же добавить поле, куда настроить импорт. Далее в запросе, который используется при отображении, установить сортировку. Например так:
select field1, field2, ...
from some_table
order by field_for_order