|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
||||||
Несовпадение типов при вставке в базу данных18.03.2013, 10:09. Показов 5600. Ответов 11
Метки нет (Все метки)
Всем привет!
Народ, делаю импорт данных из Excel в MSSQL. Сначала залил все данные в DataTable, а уже из нее с помощью SQLBulkCopy пытаюсь сделать вставку на сервер. Однако возникает проблема: на сервере одно из полей таблицы имеет тип binary(8), а в Excel'e соответствующий стобец значения хранит в текстовом формате, соответственно при импорте ошибка "Данное значение типа String из источника данных не может быть преобразовано в тип binary указанного столбца назначения.". Подскажите пожалуйста где и что нужно поправить. Вот код:
0
|
||||||
| 18.03.2013, 10:09 | |
|
Ответы с готовыми решениями:
11
Несоответствие типов данных при работе с БД Несовпадение типов данных при вызове функций
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
| 18.03.2013, 10:49 | |
|
дык тут бы надо саму таблицу в БД увидеть. Может именно в ней нужный столбец имеет тип binary. Тогда ты туда строку не загонишь.
1
|
|
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|
| 18.03.2013, 10:53 [ТС] | |
|
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
| 18.03.2013, 10:59 | |
|
а изменить тип данных в этом столбце на строковый никак?
0
|
|
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|
| 18.03.2013, 10:59 [ТС] | |
|
Просто ситуация какая, создатели БД сделали так, что вместо интовых ID записей, используются бинарники. Та таблица, в которую производится вставка создана мной лично. Чтобы использовать join к ней других таблиц можно сравнивать бинарники сконвертировав их в varchar, тогда и проблем со вставкой нет - можно заливать как текст, но, нет ли здесь каких либо подводных камней при таком обращении с бинарными записями? Если вопрос кому-то покажется нубским, уж извините, опыт работы с БД небольшой пока)
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
| 18.03.2013, 11:03 | |
|
а если перед экспортом данных на сервер конвертировать данные проблемного столбца в массив байт? Просто код изменится, зато структура таблицы БД будет как надо.
Хотя это тоже некрасиво выходит: так код совсем крохотный, а с конвертированием вырастет порядком
1
|
|
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|
| 18.03.2013, 11:07 [ТС] | |
|
Видно ничего другого не остается, хотелось конечно обойтись без циклов, вставляя строки всем скопом, но наверное на времени обработки это не отразится. Спасибо за помощь!
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
| 18.03.2013, 11:13 | |
|
ну вот ты заполнил DataAdapter данными из экселя. Только теперь начинай конвертацию. Тогда действительно особо не потеряешь времени. А то если будешь поштучно вытаскивать данные из ячеек, то тогда да - время обработки сильно возрасти может. Хотя если таблица небольшая, то и разницы никакой.
ИМХО, разрабы БД не предполагали, что кому-то понадобится автоматом из экселя данные сливать, вот и замутили такое со структурой таблиц БД.
0
|
|
|
Заблокирован
|
|
| 20.03.2013, 15:58 | |
|
Kruds, Покажи базу данных, проект и сам файл с которого читаешь.
0
|
|
|
16 / 12 / 4
Регистрация: 28.09.2015
Сообщений: 278
|
|
| 30.05.2017, 13:50 | |
|
как решили проблему?
0
|
|
|
1723 / 1536 / 165
Регистрация: 25.07.2015
Сообщений: 2,635
|
||
| 30.05.2017, 19:58 | ||
|
Её другим способом, кроме как конвертацией данных , о котором писал выше Юпатов Дмитрий, никак не решишь. Или менять тип столбца в БД.
0
|
||
|
16 / 12 / 4
Регистрация: 28.09.2015
Сообщений: 278
|
|
| 02.06.2017, 10:02 | |
|
ну на всякий случай напишу ( вдруг кому понадобиться )
я мучася с date и numeric Данное значение типа String из источника данных не может быть преобразовано в тип date/numeric указанного столбца назначения." 1) менять в БД поле на тип String - но потом проблем много 2) С датой. В exele точно должна быть дата а не String (дата и числа привязаны к правой границе а текст к левой ) у меня было так что в exel после сцеплений ячеек я получал дату вида 01.02.2014 но она считалась как текст пришлось счеплять ячейки и получать результат в виде числа (количество часов от начала отсчета даты или как то так ) а потом это число в ячейке делать "формат дата" тогда все норм 3) numeric в exel 2255.22 должна быть 2255,22 или на оборот уже не помню , короче прикол с "," и "."
0
|
|
| 02.06.2017, 10:02 | |
|
Помогаю со студенческими работами здесь
12
несовпадение типов данных Несовпадение типов данных Несовпадение типов при фильтрации Несовпадение типов при проверки ячейки в теле цикла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|