/// <summary> /// Validation for creating a new worker and inserts it into the database /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCalculate_Click(object sender, RoutedEventArgs e) { try { // creating object and adding it to the database var myWorker = new PieceworkWorker(txtFName.Text, txtLName.Text, txtTextSent.Text); txtTotalPay.Text = myWorker.Pay.ToString("c"); txtFName.IsEnabled = false; txtLName.IsEnabled = false; txtTextSent.IsEnabled = false; btnCalculate.IsEnabled = false; btnClear.Focus(); UpdateStatus("Status: worker " + txtFName.Text + " " + txtLName.Text + " added with " + txtTextSent.Text + " messages sent"); } catch (ArgumentNullException ex) { if (ex.ParamName == "Null Name") { ExceptionText(txtFName); lblWorkerFNameError.Content = ex.Message; UpdateStatus("Status: error"); } if (ex.ParamName == "Null Name") { ExceptionText(txtLName); lblWorkerLNameError.Content = ex.Message; UpdateStatus("Status: error"); } } catch (ArgumentOutOfRangeException ex) { if (ex.ParamName == "Messages Range") { ExceptionText(txtTextSent); lblMessagesSentError.Content = ex.Message; UpdateStatus("Status: error"); } } catch (ArgumentException ex) { if (ex.ParamName == "Messages Datatype") { ExceptionText(txtTextSent); lblMessagesSentError.Content = ex.Message; UpdateStatus("Status: error"); } } catch (Exception) { // exceptions not prepared for MessageBox.Show("Critical Error!", "Something very unexpected happened."); } }
/// <summary> /// Function to add a new worker to the worker database /// </summary> /// <param name="insertWorker">a worker object to be inserted</param> /// <returns>true if successful</returns> internal static bool InsertNewRecord(PieceworkWorker insertWorker) { // Create return value bool returnValue = false; // Declare the SQL connection SqlConnection dbConnection = new SqlConnection(GetConnectionString()); // Create new SQL command and assign it paramaters SqlCommand command = new SqlCommand("INSERT INTO tblEntries VALUES(@firstName, @lastName, @messages, @pay, @entryDate)", dbConnection); command.Parameters.AddWithValue("@firstName", insertWorker.FirstName); command.Parameters.AddWithValue("@lastName", insertWorker.LastName); command.Parameters.AddWithValue("@messages", insertWorker.Messages); command.Parameters.AddWithValue("@pay", insertWorker.Pay); command.Parameters.AddWithValue("@entryDate", insertWorker.EntryDate); // The above SQL command is the same as the following: // SqlCommand command = new SqlCommand("INSERT INTO tblEntries VALUES(" + insertWorker.FirstName + ", " + insertWorker.LastName + ", " + insertWorker.Messages + ", " + insertWorker.Pay + ", " + insertWorker.EntryDate + ")", dbConnection); // Your choice if you think this version is nicer! // Try to insert the new record, return result try { dbConnection.Open(); returnValue = (command.ExecuteNonQuery() == 1); } catch (Exception ex) { System.Windows.MessageBox.Show("A database error has been encountered: " + Environment.NewLine + ex.Message, "Database Error"); } finally { dbConnection.Close(); } // Return the true if this worked, false if it failed return(returnValue); }