简体   繁体   中英

I can't seem to add the records to my database inside Visual Studio

Hi there im new to C# and SQL. But my problem is with SQL im trying to conect to a Database i created on visual studio 2010. it trhows me the exception of cannot convert vachar to float. Here is the code.

private void execute()
{
     ///Here we atempt to connect to the local DB
     System.Data.SqlClient.SqlConnection SqlConnection1 = new   
     System.Data.SqlClient.SqlConnection(@"Data 
     Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated 
     Security=True;User Instance=True");
     SqlConnection1.Open();
     System.Data.SqlClient.SqlTransaction tx = SqlConnection1.BeginTransaction();
     System.Data.SqlClient.SqlCommand cmd = SqlConnection1.CreateCommand();
     cmd.Transaction = tx;
     ///Here we try to operate on the Local DB
     try
     {                
          cmd.CommandText = "INSERT INTO EmployeeInfo(EmployeeSalary,EmployeePhone,EmployeeDeskPhone,EmployeeSSN,EmployeeEmergencyContactName,EmployeeEmergencyContactPhone,EmployeeFirstName,EmployeeLastName) VALUES  
            (@_employeeSalary,'@_employeePhone','@_employeeDeskPhone','@_employeeSSN','@_employeeEmergencyContactName','@_employeeEmergencyContactPhone','@_employeeFirstName','@_employeLastName')";
          cmd.Parameters.AddWithValue("@_employeeSalary", _employeeSalary);
          cmd.Parameters.AddWithValue("@_employeePhone", _employeePhone);
          cmd.Parameters.AddWithValue("@_employeeDeskPhone", _employeeDeskPhone);
          cmd.Parameters.AddWithValue("@_employeeSSN", _employeeSSN);
          cmd.Parameters.AddWithValue("@_employeeEmergencyContactName",  
            _employeeEmergencyContactName);
          cmd.Parameters.AddWithValue("@_employeeEmergencyContactPhone", 
            _employeeEmergencyContactPhone);
          cmd.Parameters.AddWithValue("@_employeeFirstName", _employeeFirstName);
          cmd.Parameters.AddWithValue("@_employeeLastName", _employeeLastName);
          cmd.ExecuteNonQuery();
          tx.Commit();
     }
     ///If unsuccesful we rollback changes 
     catch (System.Data.SqlClient.SqlException sqlException)
     {
          System.Windows.Forms.MessageBox.Show(sqlException.Message);
          tx.Rollback();
          Console.WriteLine("**** There was Trouble Houston, with the Insert****");
     }
     ///Thhis piee of code always executes
     finally
     {
          SqlConnection1.Close();
          Console.WriteLine("***** if theres no trouble before this,  then It succesfully added the record to the database*****");
     } 
}

the variable emplyeeSalary is set to float and is the only one so i don get whjy it trhows that message. Please any help would be deeply apreciated.

Your problem is quite simple, you've placed the command parameters inside single quotes for some reason. Change them to the following:

cmd.CommandText = @"INSERT INTO 
  EmployeeInfo( EmployeeSalary ,EmployeePhone, EmployeeDeskPhone, EmployeeSSN,
  EmployeeEmergencyContactName, EmployeeEmergencyContactPhone, EmployeeFirstName,
  EmployeeLastName) VALUES  
  (@_employeeSalary,@_employeePhone,@_employeeDeskPhone,@_employeeSSN,
   @_employeeEmergencyContactName,@_employeeEmergencyContactPhone,
   @_employeeFirstName, @_employeLastName)";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM