我有一个数据库表,其中我有两个这样的字段: prix min 和 prix max
当我尝试更新我的表时
Public Shared Sub updatetraitementprix(ByVal min As Double, ByVal max As Double, ByVal ref As Integer)
Dim MaConnexion As SqlConnection = Nothing
Try
MaConnexion = OuvrirConnection()
Dim sql As String = "update traitementprix set prix min=@min , prix max=@max where Ref=@refer"
Dim Commande As New SqlCommand(sql, MaConnexion)
Commande.CommandType = CommandType.Text
Commande.Parameters.Add(New SqlParameter("@refer", ref))
Commande.Parameters.Add(New SqlParameter("@min", min))
Commande.Parameters.Add(New SqlParameter("@max", max))
Commande.ExecuteNonQuery()
Catch
Finally
If MaConnexion.State = ConnectionState.Open Then
MaConnexion.Close()
End If
End Try
End Sub
我有一个Sql语法错误,因为字段名称中有空格。
答案 0 :(得分:6)
使用方括号。这样做:
"update traitementprix set [prix min]=@min, [prix max]=@max where Ref=@refer"
来自文档:
结果集列的名称是标识符。如果名字是 遵循标识符规则的常规标识符,但不是 必须划定界限。如果名称不符合规则 标识符必须使用方括号([])或双精度来分隔 引号("")。双引号可用于分隔 结果集列名,无论设置如何 QUOTED_IDENTIFIER选项。
而且,查询第一部分的答案当然只是使用identifiers而没有空格(或其他破坏常规标识符规则的字符)。
有关各类标识符的详细信息,请参阅this TechNet article。
答案 1 :(得分:2)
在包含空格的字段名称周围放置方括号。