日期:2014-05-18  浏览次数:20724 次

[求助]用javabean操作ACCESS数据库只能INSERT数字...
用JSP做了一个简单的注册页面   用bean操作数据库时却遇到了如题的问题   代码如下,我是新手   请各位大大帮忙
package   logbean;
import   java.util.*;
import   java.sql.*;
import   java.io.*;
import   java.sql.PreparedStatement;
public   class   Logregisterbean   {
public   String   usename;
public   String   password;
public   String   repassword;
public   String   email;
String   query;
...........
              public   void   ccon(){                                                          
String   url   =   "jdbc:odbc:users ";

try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}
catch(java.lang.ClassNotFoundException   e){}
try{

Connection   con   =DriverManager.getConnection(url);
Statement   stmt   =con.createStatement();
query= "insert   into   users   (usename,password,email)     values( "+usename+ ', '+password+ ', '+email+ ') ';
stmt.executeUpdate(query);
con.close();stmt.close();
}catch(SQLException   ex){}
}
假如usename,password,email三项都为数字的话可以正确的添加进数据库   ;但是只要有任意一项里面有一个字母就不能添加成功了   在网页上输出SQL语句没有发现错误;在数据库中usename和email数据类型都为VARCAHR[20]

------解决方案--------------------
存数字的字段不需要单引号
varchar的字段需要单引号

sql应该是(前面帖子多了一个单引号):
query= "insert into users (usename,password,email) values( ' "+usename+ " ', ' "+password+ " ', ' "+email+ " ') ";

你少了括号(后
和括号)前的单引号