Click here to Skip to main content
15,902,734 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Getting this error message while executing the same function:

Procedure or function 'ismovieexists' expects parameter '@movie_name', which was not supplied.


SQL
public int add_movie(mymovie objmymovie)
    {
        SqlConnection cn = new SqlConnection(_connectionstring);
        cn.Open();
        //SqlDataReader dr;
        SqlCommand cmd = new SqlCommand("ismovieexists", cn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@movie_name", objmymovie.MOVIE_NAME);
        SqlParameter d = new SqlParameter("@d", SqlDbType.Int);
        d.Direction = ParameterDirection.ReturnValue;
        cmd.Parameters.Add(d);
        cmd.ExecuteReader();
        int i = (int)cmd.Parameters["@d"].Value;
        
        if (i == 0)
        {
            SqlCommand cmd1 = new SqlCommand();

            cmd1.Connection = cn;
            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.CommandText = "insert_values_in_movie_master";
            cmd1.Parameters.AddWithValue("@movie_name", objmymovie.MOVIE_NAME);
            cmd1.Parameters.AddWithValue("@rating", objmymovie.RATING);
            cmd1.Parameters.AddWithValue("@realease_year", objmymovie.REALEASE_YEAR);
            cmd1.Parameters.AddWithValue("@starcast", objmymovie.STARCAST);
            cmd1.Parameters.AddWithValue("@language", objmymovie.LANGUAGE);
            cmd1.Parameters.AddWithValue("@display_home", objmymovie.DISPLAY_HOME);
            cmd1.Parameters.AddWithValue("@block_status", objmymovie.BLOCK_STATUS);
            cmd1.Parameters.AddWithValue("@no_of_copies", objmymovie.no_of_copies);
            cmd1.Parameters.AddWithValue("@MOVIE_category", objmymovie.MOVIE_category);
            cmd1.Parameters.AddWithValue("@MOVIE_flag", objmymovie.MOVIE_FLAG);
            cmd1.ExecuteNonQuery();
            return i;
        }
        else
            return 1;
    }


ADDITION:

I tried ParameterDirection.Output but got error as "Procedure or function ismovieexists has too many arguments specified."
changed the variable name to lowercase.
code for class mymovie as

C#
public class mymovie
{
   public int movie_id { get; set; }
   public string movie_name { get; set; }
   public int rating { get; set; }
   public int realease_year { get; set; }
   public string starcast { get; set; }
   public string language { get; set; }
   public string display_home { get; set; }
   public string block_status { get; set; }
   public int no_of_copies { get; set; }
   public string movie_category { get; set; }
   public string movie_flag { get; set; }
 
   public int fetch_total_no_movies()
   {
      mySqlDataAccessLayer obj = new mySqlDataAccessLayer();
      int i = obj.total_no_of_movies();
      return i;
   }
   public int add_movie(string name,int rating,int year,string starcast,string lang,string displayname,string block,int copies,string category,string cd)
   {
      mySqlDataAccessLayer obj = new mySqlDataAccessLayer();
      int i = obj.add_movie(this);
      return i;
   }


here too i m doing the same but code is working gr8..
C#
public int loginuser(myadmin objmyadmin)
{
   SqlConnection cn = new SqlConnection(_connectionstring);
   cn.Open();
 
   SqlCommand cmd = new SqlCommand("valid_login", cn);
 
   cmd.CommandType = CommandType.StoredProcedure;
 
   cmd.Parameters.AddWithValue("@username", objmyadmin.admin_name);
 
   cmd.Parameters.AddWithValue("@password", objmyadmin.password);
 
   SqlParameter d = new SqlParameter("@d", SqlDbType.Int);
 
   d.Direction = ParameterDirection.ReturnValue;
 
   cmd.Parameters.Add(d);
   cmd.ExecuteReader();
 
   int z = (int)cmd.Parameters["@d"].Value;
 
   return z;
}

"someone plz help me so i cud let my hair grow"..
Posted
Updated 19-Dec-11 10:03am
v5
Comments
Wendelius 19-Dec-11 14:23pm    
Pre tags added and CAPS LOCK sentences corrected. Don't use all capitals...

Few things:

Is the datatype of objmymovie.MOVIE_NAME correct, should it have for example ToString() etc?

Also I wonder if this is correct:
C#
d.Direction = ParameterDirection.ReturnValue;

If it's an output parameter, you should use ParameterDirection.Output

If the d is actually the return data of a stored procedure then you shouldn't define it as a parameter.
 
Share this answer
 
Comments
Monjurul Habib 19-Dec-11 14:45pm    
nice answer, 5!
Sanjeev236 19-Dec-11 15:24pm    
I tried ParameterDirection.Output but got error as "Procedure or function ismovieexists has too many arguments specified."
changed the variable name to lowercase.
code for class mymovie as

public class mymovie
{


public int movie_id { get; set; }
public string movie_name { get; set; }
public int rating { get; set; }
public int realease_year { get; set; }
public string starcast { get; set; }
public string language { get; set; }
public string display_home { get; set; }
public string block_status { get; set; }
public int no_of_copies { get; set; }
public string movie_category { get; set; }
public string movie_flag { get; set; }


public int fetch_total_no_movies()
{
mySqlDataAccessLayer obj = new mySqlDataAccessLayer();
int i = obj.total_no_of_movies();
return i;
}
public int add_movie(string name,int rating,int year,string starcast,string lang,string displayname,string block,int copies,string category,string cd)
{
mySqlDataAccessLayer obj = new mySqlDataAccessLayer();
int i = obj.add_movie(this);
return i;
}

here too i m doing the same but code is working gr8..
public int loginuser(myadmin objmyadmin)
{
SqlConnection cn = new SqlConnection(_connectionstring);
cn.Open();

SqlCommand cmd = new SqlCommand("valid_login", cn);

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@username", objmyadmin.admin_name);

cmd.Parameters.AddWithValue("@password", objmyadmin.password);

SqlParameter d = new SqlParameter("@d", SqlDbType.Int);

d.Direction = ParameterDirection.ReturnValue;

cmd.Parameters.Add(d);
cmd.ExecuteReader();

int z = (int)cmd.Parameters["@d"].Value;

return z;
}


"someone plz help me so i cud let my hair grow"..
Wendelius 19-Dec-11 16:03pm    
Can you post the procedure also?
Sanjeev236 19-Dec-11 22:40pm    
ALTER procedure ismovieexists
(@movie_name nvarchar(255))
as begin
declare @value int
set @value = (select count(*) from MOVIE_MASTER where MOVIE_NAME = @movie_name)
if(@value = 0)
return 0
else
return 1
end
====================================================
ALTER procedure valid_login (@username varchar(50),@password varchar(15))

as begin

if( select count (*) from admin_master where admin_name=@username and password=@password)>0

return 1

else

return 0

end
 
Share this answer
 
Comments
Monjurul Habib 19-Dec-11 16:01pm    
:)
you have to set initial value of stored procedure variable value null
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900