Как я могу добавить 2D-массив в SQL Server 2000 с помощью C # - PullRequest
0 голосов
/ 18 февраля 2009

Я хочу добавить 2-мерный массив в SQL Server 2000 с помощью C #. Но проблема в том, что в sql нет типа данных массива. Пожалуйста, помогите мне, как я могу добавить 2-мерный массив в SQL Server. Спасибо за просмотр моего вопроса ...

Ответы [ 4 ]

2 голосов
/ 18 февраля 2009

2-D массив - это, по сути, table. Поэтому вам нужно добавить таблицу в вашу базу данных для хранения этого массива. Если вам нужно хранить несколько экземпляров массива, добавьте дополнительный столбец для хранения ключа, который будет общим для отдельных массивов.

1 голос
/ 05 июля 2012

Вам не нужно создавать дополнительный столбец для каждого измерения , как говорится в принятом в настоящее время ответе. Это все о сериализации .

  1. В SQL Server создайте столбец типа Image для хранения n-мерного массива. Если вы используете SQL Server 2005 или более поздней версии, используйте VARBINARY (MAX) вместо Image.
  2. В C # сериализуйте ваш n-мерный массив, чтобы вы могли обрабатывать его как одномерный массив (byte [])
  3. Сохраните сериализованные данные в поле Изображение.

Конечно, когда вам нужно извлечь информацию из базы данных, вы получите байтовый массив. Затем вам нужно будет десериализовать это до вашего оригинального типа (n-мерный массив).

Нужен пример?

Посмотрите на этот похожий вопрос, где я опубликовал пример, как сделать это с полем varbinary. Это должно быть очень похоже на SQL 2000.

https://stackoverflow.com/a/11334237/354756

0 голосов
/ 18 февраля 2009

Не знаю, чего вы пытаетесь достичь, поскольку вы не предоставляете никаких подробностей, а посмотрите на Массивы и списки в SQL Server 2005 или Массивы и списки в SQL Server (SQL 2000 и ранее)

0 голосов
/ 18 февраля 2009

Поля базы данных используются для хранения отдельных элементов данных. Любые структуры данных должны быть сопоставлены со столбцами и таблицами в базе данных, а не добавляться в отдельные поля базы данных.

Какие данные вы храните? Если вы хотите выполнить какой-либо вид индексации или поиска по отдельным элементам массива, то вам гораздо лучше придумать дизайн базы данных, отражающий моделируемые вами данные (поэтому массив декартовых координат должен отображаться таблица, содержащая столбцы x, y и z).

Если это просто для хранения некоторых данных для последующего извлечения, вы можете добавить их в качестве поля BLOB и просто сериализовать и десериализовать в и из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...