Заполнение таблицы aspnet_Profile через TSQL - PullRequest
3 голосов
/ 29 июля 2011

Я пытаюсь выполнить массовую загрузку членов aspnet через TSQL из CSV-файлов или источников данных базы данных. Я доволен любыми другими вариантами, например сетевыми приложениями или пакетами ssis.

Проблема, с которой я сталкиваюсь, состоит в том, что каждый участник имеет свой собственный профиль в качестве удара:

  1. Имя
  2. Фамилия
  3. Мобильный телефон
  4. Компания Добавить .... и т. Д.

Похоже, профиль aspnet хранится как

PropertyNames и PropertyValues ​​

в бэкэнд-таблице aspnet_profile.

Может кто-нибудь предложить мне, как я могу загрузить данные о сотруднике и его профиль в базу данных участников aspnet?

Спасибо.

1 Ответ

1 голос
/ 29 июля 2011

Итак, если ваша проблема в том, как правильно представить значения профиля, вот как они хранятся в БД:

aspnet_Profile.PropertyNames содержит имена переменных профиля, соответствующий дескриптор хранилища и длину значения следующим образом: [VariableName]: [Storage]: [Start]: [Length]: [VariableName] ... где

  • [VariableName] - имя переменной вашего профиля
  • [Хранилище] - один символ. B для двоичного, S для струнного
  • [Start] - начальная позиция значения в строке хранения или байтовом массиве
  • [Длина] - длина значения

Пример : Тест1: S: 0: 10: Тест2: B: 0: 100: Тест3: S: 10: 5: ТестДата: S: 15: 95

aspnet_Profile.ProfileValuesString содержит значения профиля, объединенные одно за другим без разделителей или чего-либо еще. Чтобы сгенерировать это значение столбца, вам не нужно измерять длины значений. Чтобы читать оттуда, вы, очевидно, должны. Примечание. Значения DateTime переносятся в XML при сериализации в PropertyValuesString.

Пример : TestStringABCDE <? Xml version = "1.0" encoding = "utf-16"?> 2011-07-29T10: 00: 28.1603073 + 04: 00

aspnet_Profile.ProfileValuesBinary в значительной степени совпадает с предыдущим. За исключением того, что это двоичный файл

Итак, сказав, что ваш сценарий будет состоять в том, чтобы поместить ваши данные CSV во временную таблицу в БД, а затем запустить над ними скрипт, чтобы сгенерировать PropertyNames (самая сложная часть здесь) и PropertyValuesString (самая простая часть). Вот и все.

...