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

关于插入字符串问题(jsp)
获取输入的内容,点击提交插入记录进入数据库中,我把insert语句中的字符串改成常量就可以插入(如注释),但是获得输入的信息并插入就无法实现,不报错,但数据库里面没有输入的信息,请问是不是我前面几行的语句有问题?还望指教!
  String s1=request.getParameter("sim_NUM");
  String s2=request.getParameter("type");
  String s4=request.getParameter("balance");
  String s5=request.getParameter("locus");
  
  //String strIns="insert into sim_table(sim_NUM) values ('11111')";
  String strIns="insert into sim_table(sim_NUM,type,balance,locus) values (‘"+s1+"’,‘"+s2+"’,‘"+s4+"’,‘"+s5+"’)";

  Connection con;
  ResultSet rs;
  Statement sql;
  try
  {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  }
  catch(ClassNotFoundException e)
  {
  }
  try
  {
  con=DriverManager.getConnection("jdbc:odbc:sim","","");//连接数据库
  sql=con.createStatement();
  sql.executeUpdate(strIns);
  }
  catch(SQLException e)
  {
  }


------解决方案--------------------
写的没有问题啊,建议考虑下数据库权限~
------解决方案--------------------
String s1=request.getParameter("sim_NUM"); 
String s2=request.getParameter("type"); 
String s4=request.getParameter("balance"); 
String s5=request.getParameter("locus"); 

应该是这些字符串没取到或者格式不对,打印出来看看
------解决方案--------------------
"不报错" 权限的问题的话应譔报错的呀。

你DEBUG MODE运行一个,看看运行到 String strIns="insert into sim_table(sim_NUM,type,balance,locus) values (‘"+s1+"’,‘"+s2+"’,‘"+s4+"’,‘"+s5+"’)"; 句时s1,s2,s3,s4的值。

------解决方案--------------------
不报错比较难搞
应该不是权限问题
但是看你代码看不出什么毛病
刚学JAVA 太菜 帮不了你
------解决方案--------------------
别使用这样的格式

String strIns="insert into sim_table(sim_NUM,type,balance,locus) values (?,?,?,?)";
PreparedStatement sql = con.prepareStatement(strIns);
if(s1==null)
sql.setNull(1, Types.CHAR);
else 
sql.setString(1, s1);
if(s2==null)
sql.setNull(2, Types.CHAR);
else sql.setString(2, s2);
if(s3==null)
sql.setNull(3, Types.CHAR);
else sql.setString(3, s3);
if(s4==null)
sql.setNull(4, Types.CHAR);
else sql.setString(4, s4);
sql.execute();
------解决方案--------------------
你居然把异常吞了,快点e.printStackTrace()出来
------解决方案--------------------
接5楼说的 DEBUG一下 在就是你的单引号 和双引号是在拼音模式下输入的么??
------解决方案--------------------
Statement、Connection 没有关?

建议使用 PreparedStatement,这样至少不会被单双引号搞到头晕~~~~
------解决方案--------------------
PreparedStatenment不好么?为什么要用Statemnet
------解决方案--------------------
7楼的专业啊! lz 要是 request.getParameter(xx);为null怎么办呢!而且你 con.close() 方法还没执行吧! 虽然不是太大关系,但是还是要做的!