Click here to Skip to main content
15,895,777 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to insert record into database but getting Exception Failed to convert parameter value from a SqlParameter to a String.

i have taknen Sql Datatype Varchar


my code is given below
C#
public void AddstudentDetails(int SystemID, string StudentNumber, string FirstName,string MiddleName,string LastName,string address, string contact,string Email)
           {
               SqlConnection con = new SqlConnection();
               con.ConnectionString = ConfigurationManager.ConnectionStrings["smsysConnectionString"].ConnectionString;

               SqlCommand cmd = new SqlCommand();
               cmd.Connection = con;
               cmd.CommandText = "sp_AddStudentDetails";
               cmd.CommandType = CommandType.StoredProcedure;


               SqlParameter parameterSystemID = new SqlParameter("@SystemId",SqlDbType.Int,4);
               parameterSystemID.Value=SystemID;
               cmd.Parameters.Add(parameterSystemID);

               SqlParameter parameterStudentNumber = new SqlParameter("@StudentNumber", SqlDbType.VarChar, 50);
               parameterStudentNumber.Value = StudentNumber;
               cmd.Parameters.Add(parameterStudentNumber);

               SqlParameter parameterFirstName = new SqlParameter("@FirstName", SqlDbType.VarChar, 50);
               parameterFirstName.Value = FirstName;
               cmd.Parameters.Add(parameterFirstName);

               SqlParameter parameterMiddleName = new SqlParameter("@MiddleName", SqlDbType.VarChar, 50);
               parameterMiddleName.Value = MiddleName;
               cmd.Parameters.Add(parameterMiddleName);

               SqlParameter parameterLastName = new SqlParameter("@LastName", SqlDbType.VarChar, 50);
               parameterLastName.Value = parameterLastName;
               cmd.Parameters.Add(parameterLastName);

               SqlParameter parameterAddress = new SqlParameter("@Addresss", SqlDbType.VarChar, 50);
               parameterAddress.Value = address;
               cmd.Parameters.Add(parameterAddress);

               SqlParameter parameterContact = new SqlParameter("@Contact", SqlDbType.VarChar, 11);
               parameterContact.Value = contact;
               cmd.Parameters.Add(parameterContact);

               SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar,50);
               parameterEmail.Value = Email;
               cmd.Parameters.Add(parameterEmail);

               try
               {
                   con.Open();
                   cmd.ExecuteNonQuery();
                   con.Close();
               }
               catch (Exception ex)
               {

               }
           }
Posted
Comments
tanweer 2-Oct-13 3:36am    
what are the datatypes of these columns in database, will you please share here? right now i just guess that the StudentNumber may be int and you are supplying it as varchar, please check it again.
Member 10310320 2-Oct-13 3:38am    
alter procedure sp_AddStudentDetails
@SystemID int=0,
@StudentNumber varchar(50),
@FirstName varchar(50),
@MiddleName varchar(50),
@LastName varchar(50),
@Address varchar(50),
@Contact varchar(11),
@Email varchar(50),
@StudentID int
As
Begin
if @StudentID=0
begin
insert into Students
(
SystemID,
StudentNumber,
FirstName,
MiddleName,
LastName,
Address,
Contact,
Email
)
values (
@SystemID,
@StudentNumber,
@FirstName,
@MiddleName,
@LastName,
@Address,
@Contact,
@Email
)
set @studentID=@@IDENTITY
End
else
begin
update Students set SystemID=@SystemID,
StudentNumber=@StudentNumber,
FirstName=@FirstName,
MiddleName=@MiddleName,
LastName=@LastName,
Address=@Address,
Contact=@Contact,
Email=@Email
where StudentID=@StudentID
end
end

1 solution

Hi,
I modified your code try it now:
C#
public void AddstudentDetails(int SystemID, string StudentNumber, string FirstName,string MiddleName,string LastName,string address, string contact,string Email)
            {
                SqlConnection con = new SqlConnection();
                con.ConnectionString = ConfigurationManager.ConnectionStrings["smsysConnectionString"].ConnectionString;
 
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = "sp_AddStudentDetails";
                cmd.CommandType = CommandType.StoredProcedure;
 

                SqlParameter parameterSystemID = new SqlParameter("@SystemId",SqlDbType.Int,4);
                parameterSystemID.Value=SystemID;
                cmd.Parameters.Add(parameterSystemID);
 
                SqlParameter parameterStudentNumber = new SqlParameter("@StudentNumber", SqlDbType.VarChar, 50);
                parameterStudentNumber.Value = StudentNumber;
                cmd.Parameters.Add(parameterStudentNumber);
 
                SqlParameter parameterFirstName = new SqlParameter("@FirstName", SqlDbType.VarChar, 50);
                parameterFirstName.Value = FirstName;
                cmd.Parameters.Add(parameterFirstName);
 
                SqlParameter parameterMiddleName = new SqlParameter("@MiddleName", SqlDbType.VarChar, 50);
                parameterMiddleName.Value = MiddleName;
                cmd.Parameters.Add(parameterMiddleName);
 
                SqlParameter parameterLastName = new SqlParameter("@LastName", SqlDbType.VarChar, 50);
                parameterLastName.Value = LastName;
                cmd.Parameters.Add(parameterLastName);
 
                SqlParameter parameterAddress = new SqlParameter("@Addresss", SqlDbType.VarChar, 50);
                parameterAddress.Value = address;
                cmd.Parameters.Add(parameterAddress);
 
                SqlParameter parameterContact = new SqlParameter("@Contact", SqlDbType.VarChar, 11);
                parameterContact.Value = contact;
                cmd.Parameters.Add(parameterContact);
 
                SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar,50);
                parameterEmail.Value = Email;
                cmd.Parameters.Add(parameterEmail);
 
                try
                {
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
                catch (Exception ex)
                {
 
                }
            }
I found a mistake here on this line
C#
parameterLastName.Value = LastName;
what you have done is
C#
parameterLastName.Value = parameterLastName;
 
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