powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Excel + MSSQL
4 сообщений из 4, страница 1 из 1
Excel + MSSQL
    #40129628
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел функцию CLR, которая выгружает выборку в файл, но требуется ее доработать в части типов данных.

Таким вот образом требуется, чтобы выгружались типы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private const string cByte = "BYTE";            // binary                        
        private const string cBoolean = "BOOLEAN";      // bit                           
        private const string cInt32 = "INT32";          // int                           
        private const string cInt64 = "INT64";          // bigint                           
        private const string cDecimal = "DECIMAL";      // numeric                       
        private const string cDouble = "DOUBLE";        // float
        private const string cDateTime = "DATETIME";    // datetime
        private const string cDate = "DATE";            // date
        private const string cGUID = "GUID";            // GUID



И далее по тексту читаю в цикле:
Код: c#
1.
2.
3.
4.
                        if (((DataColumn)t.Columns[j]).DataType.Name.ToUpper().Contains(cGUID))
                        {
                            workSheet.Cells[startRow + 1, counter, endIndex, counter].NumberFormat = "@";
                        }


Применяется тип ячейки, если в выборке данное поле GUID, то и выгружаю данные соответственно:
Код: c#
1.
2.
3.
4.
                            if (((DataColumn)t.Columns[j]).DataType.Name.ToUpper().Contains(cGUID))
                            {
                                workSheet.Cells[j + startRow + 1, counter].Value = t.Rows[j][k].ToString().Trim().ToUpper();
                            }



Но что-то не работает, и пишет ошибку такого рода:
Не удалось привести тип объекта "System.Guid" к типу "System.IConvertible".

Спасибо за помощь

В дальнейшем потребуется интерпретировать все типы, которые приведены в константах.
Спасибо
...
Рейтинг: 0 / 0
Excel + MSSQL
    #40129727
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отбой, с вопросом выше я разобрался.
Но появился вопрос про форматирование поле с типами Date и DateTime

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
                        else if (((DataColumn)t.Columns[j]).DataType == System.Type.GetType("System.Date"))
                        {
                            workSheet.Cells[startRow + 1, counter, endIndex, counter].NumberFormat = "DD.MM.YYYY";
                        }
                        else if (((DataColumn)t.Columns[j]).DataType == System.Type.GetType("System.DateTime"))
                        {
                            workSheet.Cells[startRow + 1, counter, endIndex, counter].NumberFormat = "DD.MM.YYYY h:mm:ss;@";
                        }



где System.Type.GetType("System.Date")) не отрабатывает. Я на выходе всегда получаю поле со значениями:
SQL13.08.2018 0:00:00
20.12.2017 0:00:00
01.12.2018 0:00:00
06.12.2017 0:00:00
24.06.2019 0:00:00
01.04.2018 0:00:00
30.09.2017 0:00:00

Как это можно обработать?
Спасибо
...
Рейтинг: 0 / 0
Excel + MSSQL
    #40129731
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двоичник
где System.Type.GetType("System.Date")) не отрабатывает
А почему он, собственно, должен отрабатывать? Нет такого типа
...
Рейтинг: 0 / 0
Excel + MSSQL
    #40129738
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тип DateOnly появился только в NET 6.0
Да и вообще, можно использовать "is", зачем использовать литералы
А еще лучше switch pattern matching
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Excel + MSSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]