0

I'm trying to execute a stored procedure to insert a record using Entity Framework. I've gone through multiple tutorials on various related topics and some how managed to get this far. Now getting the error (ArgumentNullReferenceException) while consuming the Web API through fiddler.

This is my code:

Stored procedure:

ALTER PROCEDURE [dbo].[spInsUsers]
    (@user_name nvarchar(50),
     @first_name nvarchar(50),
     @last_name nvarchar(50),
     @mobile_no varchar(10),
     @email nvarchar(50),
     @user_pic varchar(256),
     @strowner int,
     @dbtstamp datetime2)
AS
    SET NOCOUNT OFF;

    INSERT INTO [tbl_users] ([user_name], [first_name], [last_name], [mobile_no], [email], [user_pic], [strowner], [dbtstamp]) 
    VALUES (@user_name, @first_name, @last_name, @mobile_no, @email, @user_pic, @strowner, @dbtstamp);

    SELECT 
        user_id, user_name, first_name, last_name, mobile_no, email, 
        user_pic, strowner, dbtstamp 
    FROM 
        tbl_users 
    WHERE 
        (user_id = SCOPE_IDENTITY())

Stored procedure mapping:

enter image description here

Users controller:

public class UserDetails
{
            public string user_name { get; set; }
            public string first_name { get; set; }
            public string last_name { get; set; }
            public string mobile_no { get; set; }
            public string email { get; set; }
            public string user_pic { get; set; }
            public int strowner { get; set; }
            public DateTime dbtstamp { get; set; }
}

[Authorize]
[Route("AddUser")]
public HttpResponseMessage PostUsers([FromBody] tbl_users Users)
{
    using(UsersEntities uent = new UsersEntities())
    {
        uent.tbl_users.Add(Users);
        uent.SaveChanges();

        var message = Request.CreateResponse(HttpStatusCode.Created, Users);
        message.Headers.Location = new Uri(Request.RequestUri +
        Users.user_id.ToString());

        return message;
    }
}

Error:

enter image description here

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Mashhoor Gulati
  • 127
  • 3
  • 13
  • Possible duplicate of [What is a NullReferenceException, and how do I fix it?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – TheGameiswar Sep 24 '17 at 05:50

1 Answers1

0

Got it. My JSON request was erroneous. Solved.

In earlier solution I was missing the stored procedure itself.

My final working solution looks lie this.

[Authorize]
        [Route("Add_User")]

        public HttpResponseMessage PostUsers1([FromBody] tbl_users Users)
        {
            using (var context = new UsersEntities())
            {
                var response = context.spInsUsers(Users.user_name, Users.first_name, Users.last_name, Users.mobile_no,
                    Users.email, Users.user_pic, Users.strowner, DateTime.Now);

                var message = Request.CreateResponse(HttpStatusCode.Created, Users);
                message.Headers.Location = new Uri(Request.RequestUri +
                    response.ToString());

                return message;

            }

        }

Thanks.

Mashhoor Gulati
  • 127
  • 3
  • 13