locked
How do I fix this error: ExecuteNonQuery: CommandText property has not been initialized RRS feed

  • Question

  • User-14642827 posted

    How do I fix this error: ExecuteNonQuery: CommandText property has not been initialized?

    System.Data.SqlClient.SqlCommand.ValidateCommand(bool async, string method)
    System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource<object> completion, bool sendToPipe, int timeout, bool asyncWrite, string methodName)
    System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
    NextGenerationUI.Services.PersonActivityLogService.InsertPersonActivityLog(int logId, string edi, string titleOrRank, string firstName, string middleInitial, string lastName, string activityDateTime, string activityTypeDefinition, string additionalDetails, string reasonMessage, string notes) in PersonActivityLogService.cs
    +
                    cmd.ExecuteNonQuery();
    NextGenerationUI.Controllers.AccountController+<LoginAsync>d__13.MoveNext() in AccountController.cs
    +
                    _personActivityLogService.InsertPersonActivityLog(0, "edi", "title", "fn", "mi", "ln", "time", "none", "none", "none", "none");

    My code:

    public void InsertPersonActivityLog(int logId, string edi, string titleOrRank, string firstName, string middleInitial, string lastName, string activityDateTime, string activityTypeDefinition, string additionalDetails, string reasonMessage, string notes)
            {
                StringBuilder errorMessages = new StringBuilder();
                try
                {
                    // Get the connection string from the appsettings.json.
                    conn.ConnectionString = myConn.DefaultConnectionString(configuration);  //@"Server=BRENTHUMBERDEVE;Database=NextGeneration;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
                                                                                            // Open the connection.
                    conn.Open();
                    cmd.Connection = conn;
    
                    // Set the command type of the command object.
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    
                    // Assign values as "parameters to avoid 'SQL Injections.'"
                    cmd.Parameters.AddWithValue("@edi", edi);
                    cmd.Parameters.AddWithValue("@lName", lastName);
                    cmd.Parameters.AddWithValue("@fname", firstName);
                    cmd.Parameters.AddWithValue("@mi", middleInitial);
                    cmd.Parameters.AddWithValue("@date", activityDateTime);
                    cmd.Parameters.AddWithValue("@descriptor", activityTypeDefinition);
                    cmd.Parameters.AddWithValue("@details", additionalDetails);
                    cmd.Parameters.AddWithValue("@reason", reasonMessage);
                    cmd.Parameters.AddWithValue("@notes", notes);
                  
                    cmd.ExecuteNonQuery();
                }
                catch(SqlException ex)
                {
                    for (int i = 0; i < ex.Errors.Count; i++)
                    {
                        errorMessages.Append("Index #" + i + "\n" +
                            "Message: " + ex.Errors[i].Message + "\n" +
                            "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                            "Source: " + ex.Errors[i].Source + "\n" +
                            "Procedure: " + ex.Errors[i].Procedure + "\n");
                    }
                    Console.WriteLine(errorMessages.ToString());
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
                
            }

    Tuesday, February 27, 2018 2:29 PM

Answers