SQLServer异常:列名无效

时间:2017-05-07 07:13:31

标签: java sql exception jdbc sql-server-2012

com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'IDPaciente'

我得到了这个例外。这是我的代码:

    String query = "INSERT INTO Paciente('IDPaciente', 'NomePaciente', 'IdadePaciente', 'LocalidadePaciente') VALUES('"+IDTextField.getText()+"', '"+NomeTextField.getText()+"', '"+IdadeTextField.getText()+"', '"+LocalidadeTextField.getText()+"')";
    try
    {
        st = con.DatabaseConnection().createStatement();
        rs = st.executeQuery(query);
    }

我怀疑问题可能出在查询本身。

我搜索了很多,无法找到问题的解决方案。我尝试刷新缓存,更改架构中的权限,重新启动sql server(我正在使用sql server management studio 2012),我正确连接到我的数据库,似乎没有任何工作。

我可能做错了什么? 谢谢!

2 个答案:

答案 0 :(得分:0)

从列名中删除引号。

"INSERT INTO Paciente(IDPaciente, NomePaciente, IdadePaciente, LocalidadePaciente) VALUES('"+IDTextField.getText()+"', '"+NomeTextField.getText()+"', '"+IdadeTextField.getText()+"', '"+LocalidadeTextField.getText()+"')"

答案 1 :(得分:0)

列名称未在引号内键入,删除它们并重试。

<强>演示: -

Create table MyTable (id int , name varchar (50))
go
insert into MyTable (id,name) values (1 , 'ahmed')

结果: -

(1 row(s) affected)

尝试使用引号再次插入它们。

insert into MyTable ('id','name') values (1 , 'ahmed')

结果: -

Msg 207, Level 16, State 1, Line 3
Invalid column name 'id'.
Msg 207, Level 16, State 1, Line 3
Invalid column name 'name'.