<%String s1 = request.getParameter("ssn");%>
<%String s2 = request.getParameter("realname");%>
<%String s3 = request.getParameter("address");%>
<%String s4 = request.getParameter("phone");%>
<%String s5 = request.getParameter("salary");%>
<%String s6 = request.getParameter("club");%>
<%String s7 = request.getParameter("year");%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:airdrome"); 
Statement stmt=conn.createStatement(); 
String sql="insert into tech values (s1,s2,s3,s4,s5,s6,s7)"; 
ResultSet rs=stmt.executeQuery(sql); 
%>javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver][SQL Server]在此上下文中不允许使用 's1'。此处只允许使用常量、表达式或变量。不允许使用列名。
在数据库中有几个字段是float,int型,s1位置是char我想知道该怎么办救救偶

解决方案 »

  1.   

    把你的这个SQL改一下:"insert into tech values ('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+s6+"','"+s7+"')"这样试试看,注意这些s们是变量,而不是你直接在数据库的查询分析器里写的SQL语句。
      

  2.   

    那在数据库中是int类型的列项应该怎么处理再录入数据库?
      

  3.   

    insert into tech values (s1,s2,s3,s4,s5,s6,s7) 
    如果 变量是int或float型的话可以不做处理
    如果是字符型或日期型的需要在变量前后加上''这样
    如s1是字符型 "'" + s1 + "'"