ASP.NET и SQL SERVER являются лучшими. Для более крупных программ SQL SERVER обычно является лучшим выбором. Только те, кто очень экономичен, используют ACCESS. При использовании SQL SERVER для повышения эффективности базы данных обычно используются хранимые процедуры, поскольку хранимые процедуры выполняются быстро и могут реализовывать некоторые сложные запросы и другие функции. Например, передаются некоторые параметры данных, но выполняемые процедуры SQL могут отличаться.
Ниже приведен пример создания новой роли и требования, чтобы имя роли не повторялось. Ниже приведена хранимая процедура.
СОЗДАТЬ ПРОЦЕДУРУ sp_AccountRole_Create@CategoryID int,
@RoleName nvarchar(10),
@Description nvarchar(50),
@RoleID int вывод
КАК
ОБЪЯВИТЬ @Count int-- Найти, есть ли записи с таким же именем
ВЫБЕРИТЕ @Count = Count(RoleID) ИЗ Account_Role ГДЕ
ИмяРоли = @ИмяРолиЕСЛИ @Count = 0
INSERT INTO роль_аккаунта
(CategoryID, RoleName, Описание) valueS
(@CategoryID, @RoleName, @Description)SET @RoleID = @@IDENTITY
ВОЗВРАТ 1
ИДТИ
SqlConnection DbConnection = new SqlConnection(mConnectionString);
Команда SqlCommand = новая SqlCommand("sp_AccountRole_Create", DbConnection);
DbConnection.Open(connectString);
// Устанавливаем атрибут SqlCommand в хранимую процедуру
команда.ТипКоманды = ТипКоманды.СохраненнаяПроцедура;Command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
Command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);
Command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);
Command.Parameters.Add("@RoleID", SqlDbType.Int, 4);
//возвращаемое значение
команда.Параметры.Добавить("Возвращаемое значение",
SqlDbType.Int,
4, // Размер
ПараметрНаправление.Возвратное значение,
false, // имеет значение NULL
0, // точность в байтах
0, // байтовый масштаб
строка.Пусто,
DataRowVersion.Default,
нулевой );команда.параметры["@CategoryID"].значение = разрешение.CategoryID;
Command.parameters["@RoleName"].value = разрешение.PermissionName;
команда.параметры["@Description"].value = разрешение.Описание;
// Можно вернуть новое значение идентификатора
команда.параметры["@RoleID"].Направление = ПараметрНаправление.Выход;int rowsAffected = команда.ExecuteNonQuery();
int result = команда.параметры["Возвращаемое значение"].значение;
int newID = command.parameters["@RoleID"].value;
Эта функция довольно мощная. Вы можете получить три значения, а именно значение воздействия на строку, возвращаемое значение хранимой процедуры и новое значение идентификатора.