Окружающая среда:
asp.net 3.5 (C # и VB), Ms-sql server 2005, экспресс
Таблица
Таблица: tableUser
ID (первичный ключ)
Имя пользователя
Таблица: userSchedule
ID (первичный ключ)
thecreator (внешний ключ = tableUser.ID)
другие поля
Я создал процедуру, которая принимает параметр username, получает идентификатор пользователя и вставляет строку в Table: userSchedule
Проблема:
Использование хранимой процедуры с управлением списком данных только для извлечения данных из базы данных путем передачи текущего имени пользователя с помощью приведенного ниже оператора работает нормально
protected void SqlDataSourceGetUserID_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@CurrentUserName"].Value = Context.User.Identity.Name;
}
Но при вставке с использованием DetailsView выдает ошибку
Procedure or function OASNewSchedule has too many arguments specified.
Я использовал
protected void SqlDataSourceCreateNewSchedule_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@CreatedBy"].Value = Context.User.Identity.Name;
}
Подробности Просмотр свойств:
поля автогена: выключено,
режим по умолчанию: вставка,
он показывает все поля, которые могут не ожидаться процедурой, такие как идентификатор (первичный ключ), который не требуется в процедуре, и поле CreatedBy (идентификатор пользователя).
Итак, я попытался удалить 2 поля из подробного просмотра и выдает ошибку
Cannot insert the value NULL into column 'CreatedBy', table 'D:\OAS\OAS\APP_DATA\ASPNETDB.MDF.dbo.OASTest'; column does not allow nulls. INSERT fails. The statement has been terminated.
По некоторым причинам значение параметров не устанавливается.
Кто-нибудь может потрудиться понять это и помочь?