Java 无效的列名";“帐户”;

Java 无效的列名";“帐户”;,java,sql,sql-server,java-8,netbeans-8,Java,Sql,Sql Server,Java 8,Netbeans 8,我的代码执行得很好,但在java输出上执行后,它显示了无效列名帐户的错误 这是我的查询字符串 { 字符串sql= “选择[帐户]”+“[日期] 来自[报告].[dbo].[acc] 其中[账户='“+str+””; } 例外情况: Exceptioncom.microsoft.sqlserver.jdbc.SQLServerException: The column name account is not valid 试试这个: { String sql = "SELECT [ac

我的代码执行得很好,但在java输出上执行后,它显示了无效列名帐户的错误

这是我的查询字符串

{
字符串sql=
“选择[帐户]”+“[日期]
来自[报告].[dbo].[acc]
其中[账户='“+str+””;
}
例外情况:

Exceptioncom.microsoft.sqlserver.jdbc.SQLServerException: The column name account is not valid
试试这个:

{
  String sql = 
  "SELECT [account]," +"[date] 
   FROM [reports].[dbo].[acc] 
   WHERE [account]='"+str+"'";
}

你能发布更多的代码吗?我猜,这应该是:{String sql=“SELECT”+account+,“+date+”…还可以尝试打印sql查询以检查:System.out.println(sql);您的评论应该是对您的问题的编辑,但关于其内容,错误消息非常直截了当:您不允许为列命名
帐户
。这可能是因为它是microsoft sql server中的保留关键字。顺便提一下,这同样适用于
日期
。请将其称为
用户帐户
,然后
entry\u date
或类似内容…可能使用camelCase…此外,select语句中的两个字段之间没有逗号。在
Where
语句中,
[帐户=
缺少一个结束括号
]
谢谢,它现在可以工作了,更不用说它看起来对sql注入非常开放。像这样把字符串串在一起会导致灾难。