日期:2014-05-20  浏览次数:20674 次

java and access
第一次使用access,完全不懂,高分求教简单的问题!
本人完全菜鸟,代码如下:
  String name=m_name.getText();
  String password=m_passWord.getText();
   
  try
  {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   
  }catch(ClassNotFoundException ce)
  {
  System.out.println("SQLException:"+ce.getMessage());
  }
  try
  {
  Properties prop=new Properties();
  prop.put("charSet","gb2312");
  String accessFilePath="C:/Users/sky/Desktop/Database6.mdb";
  Connection con=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
  +accessFilePath,prop);
  Statement st=con.createStatement();
  String sqlstr="create table message12(peopleName String,"+"peoplePassWord String)";
  st.executeUpdate(sqlstr);
  sqlstr="INSERT INTO message12(peopleName,peoplePassword)"+"VALUES(name,password)";
  st.executeUpdate(sqlstr);
  st.close();
  con.close();  
  }catch(Exception e)
  {
  System.out.println("SQLException:"+e.getMessage());
  }
  }

为的是把俩个编辑框的输入内容写到数据库中,运行老是提示 参数不足,期待是 2。
 sqlstr="INSERT INTO message12(peopleName,peoplePassword)"+"VALUES(name,password)";
这句好像有问题,怎么把String类型的变量写进数据库呢?
如果我把name,password改成‘123’这样的就可以了!

怎么解决。。。

------解决方案--------------------
要写入的string类型加单引号引起就可以了
sqlstr="INSERT INTO message12(peopleName,peoplePassword)"+"VALUES('name','password')";
------解决方案--------------------
因为你根本没有获取到name,password
="INSERT INTO message12(peopleName,peoplePassword)"+"VALUES('"+name+"','"+password+"')";
这样就可以了