这里的高手请过来看看吧!在线等候!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

mafia_21cn 2003-05-16 09:13:17
以下代码编译通过,但是不能修改数据,tomcat控制台根本没有相关提示信息?
请问高手,这个代码哪里有问题,帮我找出来,50分立刻奉上!
package net.cjhelp.servlets;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class ReUpdateServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html;charset=GBK";
/**Initialize global variables*/
public void init() throws ServletException {
String sDBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public int executeUpdate(String sql) {
String sConnStr = "jdbc:microsoft:sqlserver://localhost:1433;databasename=ti
mecount";
String user = "guest";
String password = "";
Connection connect = null;
int row =0;
try {
connect = DriverManager.getConnection(sConnStr,user,password);
Statement stmt = connect.createStatement();
row = stmt.executeUpdate(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return row;
}

public String getStr(String str){
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e){
System.err.println(e.getMessage());
}
return "null";
}

/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request, HttpServletResponse response) th
rows ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>UpdateServlet</title></head>");
out.println("<body>");
out.println("<p>The servlet has received a GET. This is the reply.</p>");
out.println("</body></html>");
}
/**Process the HTTP Post request*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();

String rq,xm,dfl,nr,cgwm1,sl1,cgwm2,sl2,cgwm3,sl3,bz,kssj,jssj,zdsj,jsj,sql;
rq = request.getParameter("rq");
xm = getStr(request.getParameter("xm"));
dfl= getStr(request.getParameter("dfl"));
nr = getStr(request.getParameter("nr"));
kssj = request.getParameter("kssj");
jssj = request.getParameter("jssj");
zdsj = request.getParameter("zdsj");
jsj = request.getParameter("jsj");
cgwm1 =getStr(request.getParameter("cgwm1"));
sl1 = request.getParameter("sl1");
cgwm2 =getStr(request.getParameter("cgwm2"));
sl2 = request.getParameter("sl2");
cgwm3 =getStr(request.getParameter("cgwm3"));
sl3 = request.getParameter("sl3");
bz =getStr(request.getParameter("bz"));
sql="update timecount set Project_id='"+xm+"',dfl='"+dfl+"',nr='"+nr+"',kssj
='"+kssj;
sql=sql+"',jssj='"+jssj+"',zdsj='"+zdsj+"',jsj='"+jsj+"',cgwm1='"+cgwm1+"',s
l1='"+sl1+"',cgwm2='"+cgwm2;
sql=sql+"',sl2='"+sl2+"',cgwm3='"+cgwm3+"',sl3='"+sl3+"',bz='"+bz+"' where r
q='"+rq+"'";
try
{
executeUpdate(sql);
}
catch(Exception e1)
{
out.println(e1.getMessage());
}
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("Update for Final");
out.println("</title>");
out.println("<meta content=\"cjhelp.net\" name=\"cjhelp\">");
out.println("</head>");
out.println("<BODY text=#0000ff vLink=#800000 aLink=#ff0000 link=#0000ff bgPr
operties=fixed bgColor=#cccc99>");
out.println("<div> </div>");
out.println("<div> </div>");
out.println("<div> </div>");
out.println("<center><h3><font face=\"MS Sans Serif\">The Result For Operated
Database.</font></h3></center>");
out.println("<p align=center><font size=2>感谢您新的递交!<p><br>");
out.println("<div align=center>");
out.println("<a href=\"http://cjhelp:8080/cn/jsp/tcview.jsp\" target=_self>查看当前工时登陆数据!</a></td>");
out.println("<a href=\"javascript:window.close()\">关闭窗口</a>");
out.println("</BODY>");
out.println("</html>");
}
/**Clean up resources*/
public void destroy(){}
}
...全文
25 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
mafia_21cn 2003-05-19
  • 打赏
  • 举报
回复
多谢大家费心啦!!!
我已经圆满解决问题了!
原来我给出的代码真的没问题,只是从上个页面传过来的数据有问题!!
犯了一个低级可怕的错误!
散分,谢谢大家!
smalldai 2003-05-17
  • 打赏
  • 举报
回复
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{

}
return "null";
}
看看是不是这里的这个 return "null" 的事情 我没有试 不过提个醒 自己冷静点 好好想想啊
tangsijun4 2003-05-17
  • 打赏
  • 举报
回复
你还在吗,先帮忙顶一顶再说
cgsun 2003-05-17
  • 打赏
  • 举报
回复
把SQL语句放到查询分析器里试试先。

mafia_21cn 2003-05-17
  • 打赏
  • 举报
回复
大家快来看看,救人要紧!!!!!!!!!!!!!!!!!!
帅哥我要抓狂啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
mafia_21cn 2003-05-17
  • 打赏
  • 举报
回复
现在我把jso代码贴出来,大家看看!我靠,我都快要疯了,我做的这个项目在最难的地方上没有被拌住,反而在最简单的地方上出问题,而且解决不了,我~!@#$%^&*
<%@ page language="java" import="java.sql.*,java.io.*,java.util.*"%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
<%!
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{

}
return "null";
}
%>
<html>
<head>
<title>Modify</title>
</head>

<body text=#0000ff vLink=#800000 aLink=#ff0000 link=#0000ff bgProperties=fixed bgColor=#cccc99>
<%String rq,xm,dfl,nr,cgwm1,sl1,cgwm2,sl2,cgwm3,sl3,bz,kssj,jssj,zdsj,jsj;
rq = request.getParameter("rq");
xm = getStr(request.getParameter("xm"));
dfl= getStr(request.getParameter("dfl"));
nr = getStr(request.getParameter("nr"));
kssj = request.getParameter("kssj");
jssj = request.getParameter("jssj");
zdsj = request.getParameter("zdsj");
jsj = request.getParameter("jsj");
cgwm1 =getStr(request.getParameter("cgwm1"));
sl1 = request.getParameter("sl1");
cgwm2 =getStr(request.getParameter("cgwm2"));
sl2 = request.getParameter("sl2");
cgwm3 =getStr(request.getParameter("cgwm3"));
sl3 = request.getParameter("sl3");
bz =getStr(request.getParameter("bz"));
%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;Databasename=timecount";
String user="guest";
String password="";
String sql="update timecount set Project_id='"+xm+"',dfl='"+dfl+"',nr='"+nr+"',kssj='"+kssj+"',jssj='"+jssj+"',zdsj='"+zdsj+"',jsj='"+jsj+"',cgwm1='"+cgwm1+"',sl1='"+sl1+"',cgwm2='"+cgwm2+"',sl2='"+sl2+"',cgwm3='"+cgwm3+"',sl3='"+sl3+"',bz='"+bz+"' where rq='"+rq+"'";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
try
{
stmt.execute(sql);
out.println(":) 恭喜您,数据修改成功<br>");
out.println("<a href=\"http://cjhelp:8080/cn/jsp/tcview.jsp\">查看当前数据</a>");
out.println("<a href=\"http://cjhelp:8080/cn/jsp/tc_edit.jsp\">返回继续修改</a>");
}catch(Exception e){
out.println(":( 发生异常错误,数据修改失败!");
}
stmt.close();
conn.close();
%>
</body>
</html>
mafia_21cn 2003-05-17
  • 打赏
  • 举报
回复
是啊,我把权限设置过了,可以update!但是仍然有问题!!!!
我怀疑是不是我的MSSQL2K的jdbc驱动版本的问题呢?
我当时下那个版本并没有声明支持jdk1.4,大家过来看看,是不是这样的问题呢?
还有,我是在2K professional下装的SQL2K个人开发版本!是不是也因此受到影响呢?
我都快想抹脖子了,我今天早上不用servlet来执行修改数据库了,直接在jsp页面内,但是仍然不可以修改,而且没有抱错信息!你说,我该怎么办呢??
xqi8 2003-05-16
  • 打赏
  • 举报
回复
up
angzhy 2003-05-16
  • 打赏
  • 举报
回复
String user = "guest";
String password = "";
是不是登录数据库得权限不够啊?我调试了你的程序,没问题的 啊,我只不过把sql语句改的简单了一点啊!
mafia_21cn 2003-05-16
  • 打赏
  • 举报
回复
acefr(),好人啊~~5555555555~~~~~~~~~
acefr 2003-05-16
  • 打赏
  • 举报
回复
先顶一下在仔细看。:)
wyawxj 2003-05-16
  • 打赏
  • 举报
回复
^_^"
wyawxj 2003-05-16
  • 打赏
  • 举报
回复
关注~~~~ ^_^
mafia_21cn 2003-05-16
  • 打赏
  • 举报
回复
其实我是想偷懒,在原先作好的一个servlet的基础上想简单改动一下,没想到出现了这么一个大香蕉,真是令我头疼!哎呀~~~
mafia_21cn 2003-05-16
  • 打赏
  • 举报
回复
好的,cgsun兄,我尝试一下!
我是从宿舍跑到学校的机房来求助大家了!
所以现在还无法在机器上马上调试,但是大家给了我思路和一些可行的办法!我会吸取意见的!
多谢!明天来结帐!
大家继续!
cgsun 2003-05-16
  • 打赏
  • 举报
回复
sql语句对的话,
有executeUpdate(sql);问题吗?弄个简单点的SQL试试
kurt14204 2003-05-16
  • 打赏
  • 举报
回复
错误还没有发现
先帮忙顶一下:)
mafia_21cn 2003-05-16
  • 打赏
  • 举报
回复
分不够还可以再加啊,帅哥我有的是分,5000多呢?我很早就注册了,但是很久没来!
分多的往外溢呢?谁要分就动作快点!!!!!
lynx1111 2003-05-16
  • 打赏
  • 举报
回复
public void executeUpdate(String sql) {
stmt = null;
rs=null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}

我用的public void executeUpdate(String sql) {
你试试!
mafia_21cn 2003-05-16
  • 打赏
  • 举报
回复
感谢大家的帮助!请大家再帮着看看????
加载更多回复(10)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧