Environment: asp.net 3.5 (C# and VB) , Ms-sql server 2005 express
Tables
Table:tableUser ID (primary key) username
Table:userSchedule ID (primary key) thecreator (foreign key = tableUser.ID) other fields
I have created a procedure that accepts a parameter username and gets the userid and inserts a row in Table:userSchedule
Problem: Using stored procedure with datalist control to only fetch data from the database by passing the current username using statement below works fine
protected void SqlDataSourceGetUserID_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@CurrentUserName"].Value = Context.User.Identity.Name;
}
But while inserting using DetailsView it shows error
Procedure or function OASNewSchedule has too many arguments specified.
I did use
protected void SqlDataSourceCreateNewSchedule_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@CreatedBy"].Value = Context.User.Identity.Name;
}
DetailsView properties: autogen fields: off, default mode: insert, it shows all the fields that may not be expected by the procedure like ID (primary key) not required in procedure and CreatedBy (user id ) field .
So I tried removing the 2 fields from detailsview and shows error
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.
For some reason parameters value is not being set.
Can anybody bother to understand this and help?