Конвертировать varchar в двойное в DataSet TableAdapter Fill - PullRequest
0 голосов
/ 15 апреля 2011

В SQL Server 2008 у меня есть строго типизированный набор данных с таблицей:

TABLE
 ID (Guid)
 Value (varchar(50))

Эта таблица, Значение фактически представляет зашифрованное значение в базе данных, которое становитсярасшифровывается после чтения из этой таблицы на моем сервере.

В Visual Studio;У меня есть набор данных с моей таблицей, который выглядит следующим образом:

TABLE
 ID (Guid)
 Value (float)

Я хочу знать, есть ли способ, в DataSet, вызвать мои методы дешифрования на Значение , когда яя вызываю мой Заполнить запрос к TableAdapter для этой таблицы.

Есть ли возможность расширить DataSet XSD для поддержки такого рода массива данных при чтении данных?

В дополнение к этому, есть ли способ при вставке / обновлении записей в этой таблице записывать строки в зашифрованные значения?

ПРИМЕЧАНИЕ:
Весь код шифрования / дешифрования выполняется наклиент для базы данных, не для самой базы данных.

1 Ответ

1 голос
/ 15 апреля 2011

Метод Fill () будет выполнять любой SQL, указанный в свойстве SelectCommand DataAdapter. Конечно, можно настроить SQL так, чтобы он «массировал» данные по мере их поступления.

Ваша проблема усложняется необходимостью выполнить некоторую расшифровку .NET. Если вы действительно хотите это сделать, и это имеет для вас большое значение, вы можете установить сборку .NET в базе данных SQL Server. Как только это будет сделано, вы сможете указать пользовательскую команду SelectCommand, которая вызывает код в вашей сборке NET для дешифрования данных во время выбора.

Но это похоже на огромную работу за очень маленькое вознаграждение. Вероятно, проще и эффективнее просто обработать набор данных и расшифровать его там. :)

...