Tharkis Ответов: 1

Как динамически создать таблицу SQL в ASP.NET-что?


Я пытаюсь определить наилучший способ решения следующей проблемы:

Мое приложение должно позволить пользователю определить структуру таблицы, а затем создать таблицу в SQL из этой структуры. Затем приложение должно иметь возможность разрешить пользователю выполнять CRUD-операции с новой таблицей.

Я думаю, что то, что я ищу, похоже на то, что делают приложения CMS, когда они создают пользовательский контент.

Каков наилучший способ достичь этого?

Что я уже пробовал:

Я много гуглил, но не нашел ничего похожего на то, что искал.

1 Ответов

Рейтинг:
2

#realJSOP

0) разрешить пользователю указывать имена и типы столбцов.

1) Создайте коллекцию объектов, в которой хранятся имена и типы столбцов. Убедитесь, что вы добавили код для предотвращения дублирования имен столбцов. Существует несколько методов, которые можно использовать для черного ящика этого кода, чтобы скрыть сложность проверки. Я позволю вам быть программистом и указать, сколько валидации необходимо, и где она должна быть реализована.

2) постройте строку, представляющую требуемый запрос.

string userTable = "MyTable";
HashSet columns = new HashSet<string,string>(); // populate this somewhere else

StringBuilder query = new StringBuilder();
query.AppendFormat("IF OBJECT_ID('{0}','U') IS NOT NULL DROP TABLE dbo.{0}; ", userTable).AppendLine();
query.AppendFormat("CREATE TABLE dbo.{0} (", userTable);

MyColumnItem lastColumn = columns.Last();

foreach(MyColumnItem item in columns)
{
    query.AppendFormat("{0} {1}", item.ColumnName, item.ColumnType);
    it (!item.Equals(lastItem)
    {
        query.Append(",");
    }
}
query.Append(");");


3) Используйте классы ADO для выполнения запроса.