参数化的SQL查询不工作
我试图让这个查询工作,但它不工作:参数化的SQL查询不工作
strQuery = "Insert Into StudentInfo (StudentSurname, StudentNumber) Values (@Surname, @StudentNo) Where [email protected]"
任何帮助表示赞赏。
如果插入新记录,WHERE子句没有任何意义。它也不是有效的SQL语法。
你可以尝试以下方法:
strQuery = "Insert Into StudentInfo (StudentName, StudentSurname, StudentNumber) Values (@Name, @Surname, @StudentNo)"
要更新现有的记录,使用UPDATE语句:
strQuery = "Update StudentInfo SET [email protected], [email protected] WHERE [email protected]"
WHERE子句应该有StudentNumber(而不是StudentName),因为这将是每个学生都独一无二。名称可能会重复,并会导致更新错误的记录。
嗨,我很确定我需要现在就用更新语句来做。你能纠正这个声明:cmd.CommandText =(更新StudentInfo设置StudentSurname = @姓氏,studentnumber = @ studentno where studentname = @ name“)它说不正确的语法附近”=“谢谢 – Quattro
用UPDATE语句更新。 –
以下显示如果使用SQL-Server将OleDb更改为SqlClient,则使用OleDb数据提供程序执行更新,例如, SqlConnection和SqlCommand。注意如何设置需要Framework 3.5或更高版本的命令文本。
Public Sub UpdateRow(
ByVal StudentSurname As String,
ByVal StudentNumber As Integer,
ByVal StudentName As String)
Using cn As New OleDbConnection("Your connection string")
Using cmd As New OleDbCommand("", cn)
cmd.CommandText =
<SQL>
UPDATE StudentInfo
SET
StudentSurname = @StudentSurname,
StudentNumber = @StudentNumber
WHERE
StudentName = @StudentName
</SQL>.Value
cmd.Parameters.AddWithValue("@StudentSurname", StudentSurname)
cmd.Parameters.AddWithValue("@StudentNumber", StudentNumber)
cmd.Parameters.AddWithValue("@StudentName", StudentName)
cn.Open()
Dim Affected As Integer = CInt(cmd.ExecuteNonQuery())
If Affected <> 1 Then
' we have a problem
Else
' update successful
End If
End Using
End Using
End Sub
什么不工作? INSERT查询没有WHERE子句 – Plutonix
那么我怎样才能将新的StudentSurname和新的StudentNumber插入StudentName @Name的学生?谢谢 – Quattro
INSERT ==添加新记录。更新==改变现有数据 – Plutonix