在Vb.Net应用程序中避免Sql查询中的空格

时间:2014-03-21 16:14:56

标签: sql .net sql-server vb.net

我有一个数据库表,其中我有两个这样的字段: 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语法错误,因为字段名称中有空格。

  1. 那我怎么能避免这个问题?
  2. 如何让Sql查询忽略字段名称中的空格?

2 个答案:

答案 0 :(得分:6)

使用方括号。这样做:

"update traitementprix set [prix min]=@min, [prix max]=@max where Ref=@refer"

来自文档:

  

结果集列的名称是标识符。如果名字是   遵循标识符规则的常规标识符,但不是   必须划定界限。如果名称不符合规则   标识符必须使用方括号([])或双精度来分隔   引号("")。双引号可用于分隔   结果集列名,无论设置如何   QUOTED_IDENTIFIER选项。

而且,查询第一部分的答案当然只是使用identifiers而没有空格(或其他破坏常规标识符规则的字符)。

有关各类标识符的详细信息,请参阅this TechNet article

答案 1 :(得分:2)

在包含空格的字段名称周围放置方括号。