ASPX写入SQL数据类型

时间:2016-04-15 16:22:48

标签: sql asp.net

我想写我的SQL数据库,但是得到了这个特定的错误:

  

System.Data.SqlClient.SqlException(0x80131904):必须声明   标量变量“@Aantalpaginas”。在   System.Data.SqlClient.SqlConnection.OnError(SqlException异常,   布尔值breakConnection,Action 1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 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,布尔& 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超时,任务& task,Boolean asyncWrite,SqlDataReader   ds,Boolean describeParameterEncryptionRequest)at   System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior   cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String   方法,TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource 1   completion,String methodName,Boolean sendToPipe,Int32 timeout,   布尔asyncWrite)at   System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at   project.NEWANDWRITE.btnOpslaan_Click(Object sender,EventArgs e)in   错误号码:137,州:2,班级:15

这是我在SQL中的数据类型: http://imgur.com/qj2oSsb

我想我需要将txtPaginas.text中的文本转换为右边的int?

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 个答案:

答案 0 :(得分:2)

您在参数#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();
        }
    }