2016-04-15 37 views
2

我要写信给我的SQL DATABSE,但得到此特定错误:ASPX写入SQL数据类型

System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Aantalpaginas". at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean 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, 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, TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource 1 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

这是我在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(); 
      } 
     } 

回答

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(); 
     } 
    } 
+1

我speechles,谢谢! – Anon56890