为什么 MariaDB 在我的 sql 查询中不接受我的字符串变量作为 table 名称?

Why won't MariaDB accept my string variable as table name on my sql query?

我在从 xampp 数据库中检索数据时遇到问题。我对此很陌生,所以我不知道如何解决它。这是我的代码:

Dim contract As String

Private Sub projectchart()
  OpenConnection()
  sql = "SELECT activityname, progress FROM '" & contract & "';"
  dr = cmd.ExecuteReader
  Chart2.Series("Progress").Points.Clear()

  While dr.Read
    Chart2.Series("Progress").Points.AddXY(dr("activityname"),dr("progress"))
  End While

  cmd.Dispose()
  con.Close()
End Sub

当我运行这段代码出现这个错误

您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1

行 "c00101" 附近使用的正确语法

c00101 是 table 名称,是变量合约所包含的内容

但是当我尝试 运行 以下格式的代码时,一切 运行 没问题,我试图用它来显示数据的图表工作得很好。

sql = "SELECT activityname, progress FROM c00101;"


我真的不知道为什么会这样。有什么可以帮助我的吗?

如果您查看的是实际的 SQL,而不是构建它的代码,您就会看到不同之处,即单引号。那是为了指定文本值。正如您在 VB 中将文字 Strings 放在双引号周围而不是变量或其他标识符周围一样,您在 SQL 中将文本文字放在双引号周围但在标识符周围放置单引号。