2009-11-09 5 views
0

J'essaye ce code c'est problème pour passer la valeur dans mssqlserver je passe la valeur une page à une autre page dans l'entendre nrno est la valeur viennent à l'autre page mais entendez l'erreur java.sql.SQLException: Nom de colonne 'non valide' nrno '.sql server datainsert erreur

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Untitled</title> 
</head> 
<body> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.io.*" %> 

<% 
String AppURL = request.getContextPath() ; 
String thisFile = AppURL+request.getServletPath() ; 
int nrno = 0; 
try 
{ 
nrno = Integer.parseInt(request.getParameter("rno")); 
} 
catch(NumberFormatException ex) 
{ 
    nrno = 0; 
} 
%> 
<td>this is in roolno :- <%=nrno%> </td><br> 
<% 
Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/sample", "sa", "sa1234"); 
java.sql.Statement stmt = conn.createStatement(); 
      try 
      { 
     int val = stmt.executeUpdate("INSERT student (name,rno) VALUES('nikki',+ nrno)"); 
      out.println("1 row affected"); 
     } 
     catch (SQLException s) 
      { 
     System.out.println("SQL statement is not executed!"); 
     } 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
+0

utilisation psl le formatage du code – KB22

Répondre

1

Vous n'avez pas besoin de ce qui suit?

int val = stmt.executeUpdate("INSERT student (name,rno) VALUES('nikki'," + nrno + ")"); 

Dans votre code exemple ci-dessus, vous n'êtes pas insérer la valeur de nrno, mais la chaîne réelle nrno lui-même (car il est à l'intérieur des doubles guillemets).

Aller vers l'avant, j'enquêter sur PreparedStatements ce que vous pouvez faire ce qui suit:

PreparedStatement pstmt = con.prepareStatement("INSERT student (name,rno) VALUES(?,?)"); 
    pstmt.setString(1, 'nikki'); 
    pstmt.setInt(2, nrno); 

et éviter les mauvaises questions citant comme ci-dessus, ainsi que d'éventuels problèmes d'injection SQL (je me rends compte de la ci-dessus peut être un exercice ou similaire, mais c'est une bonne chose d'être au courant de).

0

modifier,

int val = stmt.executeUpdate("INSERT student (name,rno) VALUES('nikki'," + nrno 
+ ")");