Веб-менеджер баз данных .NET SQL - PullRequest
1 голос
/ 28 июля 2010

У меня есть проект ASP.NET, и я хотел бы создать страницу, на которой мои системные администраторы могут изменять данные таблицы базы данных (вставлять, обновлять и удалять строки).

Во-первых, у меня есть выпадающий список, привязанный к данным на основе таблиц в базе данных:

DdlTable.DataSource = from x in dc.Mapping.GetTables()
                      orderby x.TableName.Replace("dbo.", "")
                      select new {TableName = x.TableName.Replace("dbo.", "")};
DdlTable.DataTextField = "TableName";
DdlTable.DataValueField = "TableName";
DdlTable.DataBind();
DdlTable.Items.Insert(0, "Select a Table");

Далее, я хотел бы иметь сетку (или какой-либо другой объект данных)привязывается к таблице при выборе и динамически создает функциональные возможности для столбцов, вставки, обновления и удаления.Можно ли это сделать без кодирования для каждой конкретной таблицы?

Очевидно, я могу создать x количество видов сетки и источников данных, но я хотел бы, чтобы он создавался динамически для гибкости и минимального кодирования.

По сути, я хочу иметь простой веб-менеджер SQL.

Ответы [ 2 ]

0 голосов
/ 14 августа 2010

Короче говоря - нет - вы меняете свои таблицы, вы должны изменить свой CRUD - волшебной пули нет.

Вы можете попробовать что-то вроде CodeSmith.Или вы можете просто написать что-нибудь сами - не должно быть слишком сложно, не так ли?Запросите представление InformationSchema для полей вашей таблицы, и у вас есть вся информация, необходимая для построения функции в вашем коде для создания операторов CRUD.

0 голосов
/ 28 июля 2010

Try ...

Создайте отдельный источник данных для каждой таблицы (в коде или разметке, не имеет значения).

Убедитесь, что у gridview нет источника данных, установленного при загрузке страницы.

В случае какого-либо события (нажатие кнопки, выбранный индекс из раскрывающегося списка и т. Д.) Установите для источника данных gridview значение, выбранное в раскрывающемся списке, убедитесь, что autogenerate = true, а затем databind ().

...