當我參數化查詢時,出現「必須聲明標量變量」的錯誤。我是使用SQL Server的新手。而我使用的版本是SQL Server 2012的下面是代碼片段:在使用SQL Server 2012時在vb中使用參數化查詢
Protected Sub Main_Page
Dim con as OleDbConnection
Dim cmd as OleDbCommand
Dim query as String
con = New OleDbConnection("Provider=SQLNCLI11;Data Source=ARIES-PC\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=SchoolDB")
con.Open()
query = "INSERT INTO Instructors(FirstName,LastName,Address,Contact_Number) VALUES (@fname,@lname,@address,@number)"
cmd = New OleDbCommand(query, con)
cmd.Parameters.AddWithValue("@fname", txtFirstName.Text)
cmd.Parameters.AddWithValue("@lname", txtLastName.Text)
cmd.Parameters.AddWithValue("@address", txtAddress.Text)
cmd.Parameters.AddWithValue("@number", txtContact.Text)
cmd.ExecuteNonQuery()
cmd.Dispose()
con.Close()
Response.Write(<script>alert('Success!')</script>)
End Sub
你應該看看[我們可以停止使用AddWithValue()了嗎?](http://blogs.msmvps.com/ jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already /)並停止使用'.AddWithValue()' - 它可能會導致意外的和令人驚訝的結果... –
另外,您應該使用任何實現'IDisposable'接口的對象的'using'語句。除此之外,你的代碼似乎應該工作。 –
任何你使用OleDb代替原生SqlClient庫的原因?通常這個錯誤意味着你的一個字段或者你的表被拼錯了,並被錯誤地認爲是一個參數。 – Steve