为了账号安全,请及时绑定邮箱和手机立即绑定

无效的列名 Gull

无效的列名 Gull

噜噜哒 2021-06-29 10:54:06
我正在将 Sql Server 与 Netbeans 一起使用。我正在使用以下代码执行更新查询Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");        //Connection establishment        Connection con=DriverManager.getConnection("jdbc:sqlserver://DESKTOP-CU5U75J\\SQLSERVER1;databaseName=SQLConnection","Fateh","Fateh");        //Statement Object        Statement st=con.createStatement();        //For DML use executeUpdate method of Statement Class        st.executeUpdate("INSERT INTO Emp"                +"  VALUES("+2+",+Gull)");        //Commit Statement        con.commit();        JOptionPane.showMessageDialog(this, "Message", "The Data is Entered", JOptionPane.INFORMATION_MESSAGE);    } catch (ClassNotFoundException ex) {        Logger.getLogger(Employe.class.getName()).log(Level.SEVERE, null, ex);    } catch (SQLException ex) {        Logger.getLogger(Employe.class.getName()).log(Level.SEVERE, null, ex);    }}   
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

这条线有问题:

st.executeUpdate("INSERT INTO Emp"
            +"  VALUES("+2+",+Gull)");

更准确地说,字符串连接被搞砸了:

"INSERT INTO Emp"+"NALUES("+2+",+Gull)"

将评估为这样的字符串:INSERT INTO Emp VALUES(2,+Gull)

因为它抱怨Gull列名无效,所以没有这样的列。

所以我怀疑它是一些变量,你想在那里粘贴哪个值。在这种情况下,您可能想尝试:

"INSERT INTO Emp" + "VALUES(" + 2 + "," + Gull + ")"

这将评估为:

INSERT INTO Emp VALUES(2,[whatever value Gull has])

但是,请记住,如果Gull是字符串,则必须将其用引号括起来:

"INSERT INTO Emp" + "VALUES(" + 2 + ",'" + Gull + "')"

最后但并非最不重要的是,您很容易受到 SQL 注入的影响!你可能也想考虑一下。


查看完整回答
反对 回复 2021-07-14
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信