用这个替换上面的一试<html> <head><title>Add User to DB</title></head> <%@ page contentType="text/html; charset=gb2312" language="java" %> <%@ page import="java.sql.*"%> <body> <pre> <% //Get parameters from request String name,pwd; name=request.getParameter("name"); pwd=request.getParameter("pwd"); try{ //add infomation to DB Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection("jdbc:odbc:mydb"); out.println(con); Statement stmt=con.createStatement(); out.println(stmt); stmt.executeUpdate("insert into User1 values('"+name+"','"+pwd+"')");
//query DB for display all users ResultSet rs=stmt.executeQuery("select * from User1"); out.println("All user in DB!"); while(rs.next()){ out.print("user name: "); out.print(rs.getString("name")+" pwd: "); out.println(rs.getString("pwd")); }
//clear,must do it rs.close(); stmt.close(); con.close();
或:String sql="insert into User1 values"+"("+"'"+name+"','"+pwd+"'"+")";
stmt.executeUpdate(sql);3、ResultSet rs=stmt.executeQuery("select * from User1");
//rs.getString("name"); rs在没有执行如rs.next()这样的动作之前是不能执行这句的。
out.println("All user in DB!");
while(rs.next()){
out.print("user name: ");
out.print(rs.getString("name")+" pwd: ");
out.println(rs.getString("pwd"));
}
//clear,must do it
//rs.close();
//stmt.close();
con.close(); //直接执行这句就行了。
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb");
sun.jdbc.odbc.JdbcOdbcDriver这句改为com.microsoft.jdbc.sqlserver.SQLServerDriver
这是sqlserver的
他是使用JDBC-ODBC桥的,不是采用纯Java驱动的,并没有错,
如果使用纯Java的话要另外下载驱动程序啊
http://search.csdn.net/Expert/topic/2566/2566686.xml?temp=.8495447
但是不知道怎么去解决
这个是SQL Server连接的错误信息
[Microsoft][ODBC SQL Server Driver][SQL Server]????: ??????????????????
如何解决?
<head><title>Add User to DB</title></head>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="java.sql.*"%>
<body>
<pre>
<%
//Get parameters from request
String name,pwd;
name=request.getParameter("name");
pwd=request.getParameter("pwd");
try{
//add infomation to DB
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:mydb");
out.println(con);
Statement stmt=con.createStatement();
out.println(stmt);
stmt.executeUpdate("insert into User1 values('"+name+"','"+pwd+"')");
//query DB for display all users
ResultSet rs=stmt.executeQuery("select * from User1");
out.println("All user in DB!");
while(rs.next()){
out.print("user name: ");
out.print(rs.getString("name")+" pwd: ");
out.println(rs.getString("pwd"));
}
//clear,must do it
rs.close();
stmt.close();
con.close();
}catch(Exception ex){
out.println(ex.getMessage());
}
%>
</pre>
</body>
</html>
Statement stmt=con.createStatement();这句改为
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
后面执行时要先rs.next;
游标默认是不可滚动的,所以要加ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE把它设为可滚动的
为什么我上一张传来的值的用户名的数据是 NULL
而密码的数据却传过来了?这是上一张的网业的代码<html>
<head><title></title>
</head>
<body>
<form method="post" action="index3.jsp">
<p align="center">姓名
<input type="text" name="name"></p>
<p align="center">密码
<input type="password" name="pwd"></p>
<p align="center">
<input type="submit" name="提交" value="提交"></p>
<form>
</body>
</html>
又把数据库修改了一点因为我的SQL Server的数据库是从ACCESS中转化来的
所以多了一个ID,删除了以后就可以了
但是现在出现的问题是
上一张网业的用户名(name)的值传不过来了
这个在ASP中是从来没有出现过的
不知道怎么回事