2

I want to write to my SQL databse, but getting this specific error:

System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Aantalpaginas". at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at project.NEWANDWRITE.btnOpslaan_Click(Object sender, EventArgs e) in Error Number:137,State:2,Class:15

This are my datatypes in SQL: https://i.sstatic.net/SeFSk.jpg

I think i need to convert the text in the txtPaginas.text to an int right?

if (Page.IsValid)
        {

            string connString = WebConfigurationManager.ConnectionStrings["csBoeken"].ConnectionString;
            SqlConnection myConnection = new SqlConnection(connString);

            string sqlWegschrijven = "INSERT INTO TabelBoeken (ISBN, Titel, Auteur, Uitgever, JaarUitgifte, Aantalpaginas, Aanschafprijs) VALUES (@ISBN, @Titel, @Auteur, @Uitgever, @JaarUitgifte, @Aantalpaginas, @Aanschafprijs)";

            SqlCommand cmdSchrijfNaarDB = new SqlCommand(sqlWegschrijven, myConnection);

            cmdSchrijfNaarDB.Parameters.AddWithValue("@Titel", txtTitel.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@Auteur", txtAuteur.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@ISBN", txtISBN.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@Uitgever", txtUitgever.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@JaarUitgifte", txtJaar.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@Aantalpagina", txtPagina.Text);
            cmdSchrijfNaarDB.Parameters.AddWithValue("@Aanschafprijs", txtPrijs.Text);

            try
            {
                myConnection.Open();
                cmdSchrijfNaarDB.ExecuteNonQuery();
            }
            catch (Exception error)
            {
                lblError.Text = error.ToString();
            }
            finally
            {
                myConnection.Close();
            }
        }

1 Answer 1

2

You have a spelling error on parameter #6

if (Page.IsValid)
    {

        string connString = WebConfigurationManager.ConnectionStrings["csBoeken"].ConnectionString;
        SqlConnection myConnection = new SqlConnection(connString);

        string sqlWegschrijven = "INSERT INTO TabelBoeken (ISBN, Titel, Auteur, Uitgever, JaarUitgifte, Aantalpaginas, Aanschafprijs) VALUES (@ISBN, @Titel, @Auteur, @Uitgever, @JaarUitgifte, @Aantalpaginas, @Aanschafprijs)";

        SqlCommand cmdSchrijfNaarDB = new SqlCommand(sqlWegschrijven, myConnection);

        cmdSchrijfNaarDB.Parameters.AddWithValue("@Titel", txtTitel.Text);
        cmdSchrijfNaarDB.Parameters.AddWithValue("@Auteur", txtAuteur.Text);
        cmdSchrijfNaarDB.Parameters.AddWithValue("@ISBN", txtISBN.Text);
        cmdSchrijfNaarDB.Parameters.AddWithValue("@Uitgever", txtUitgever.Text);
        cmdSchrijfNaarDB.Parameters.AddWithValue("@JaarUitgifte", txtJaar.Text);
        cmdSchrijfNaarDB.Parameters.AddWithValue("@Aantalpaginas", txtPagina.Text); // Correct spelling is @Aantalpaginas
        cmdSchrijfNaarDB.Parameters.AddWithValue("@Aanschafprijs", txtPrijs.Text);

        try
        {
            myConnection.Open();
            cmdSchrijfNaarDB.ExecuteNonQuery();
        }
        catch (Exception error)
        {
            lblError.Text = error.ToString();
        }
        finally
        {
            myConnection.Close();
        }
    }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.