我正在将 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 注入的影响!你可能也想考虑一下。
添加回答
举报
0/150
提交
取消