我想写我的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 方法,TaskCompletionSource1 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();
}
}
答案 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();
}
}