高手教我-关于数据库数据的删除(在线等待)

druide 2002-11-23 02:20:35
忙了一上午,怎么也没有搞明白。
我的源程序如下:
<%@ page contentType="text/html; charset=Gb2312" import="java.sql.*"%>
<html>
<head>
<title>删除不用的数据</title>
</head>
<body>
<%
String mystr=request.getParameter("song1");
String mystr1;
if(mystr.equals(""))
{
response.sendRedirect("del1.htm");
}
else
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:panchang");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
mystr1="delete * from employee where id = '" + mystr + "'";
stmt.executeUpdate(mystr1);
stmt.close();
conn.close();
%>
<P>您输入的记录已被<font color=red>删除</font></P>
<%
}
%>

</body>
</html>
另外,数据库采用:access
数据源名:panchang
表: employee
其中表中字段:
id 数字
name 文本
gender 文本
age 数字
出错信息如下:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 苃?-pn{?9M
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:2525)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)
at _jsp._website._del__jsp._jspService(/website/del.jsp:20)
at com.caucho.jsp.JavaPage.service(JavaPage.java:89)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:83)
at com.caucho.jsp.Page.service(Page.java:280)
at com.caucho.jsp.QServlet.service(QServlet.java:161)
at com.caucho.server.http.AbstractRequest.service(AbstractRequest.java:452)
at com.caucho.server.http.AbstractRequest.service(AbstractRequest.java:395)
at com.caucho.server.http.PageCache$Entry.service(PageCache.java:256)
at com.caucho.server.http.PageCache.service(PageCache.java:105)
at com.caucho.server.http.VirtualHost.service(VirtualHost.java:406)
at com.caucho.server.http.Request.dispatch(Request.java:211)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:307)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:257)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:536)




...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
freefalcon 2002-11-23
  • 打赏
  • 举报
回复
两处错误:
1.delete中不使用*
2.字段类型不一致,id是数字,不要加引号,但如果mystr是String类型的,则需要转换
mystr1="delete from employee where id = " + Integer.parseInt(mystr);
druide 2002-11-23
  • 打赏
  • 举报
回复
多谢指点,我采用itok000的方法,结果没有问题。
可是到我加上if else后,总告诉:else without if
catch without try

天啊,我晕了
weiyidress 2002-11-23
  • 打赏
  • 举报
回复
你创建的state是只读的
itok000 2002-11-23
  • 打赏
  • 举报
回复
将mystr1="delete * from employee where id = '" + mystr + "'";
改成mystr1="delete * from employee where id = " + mystr + ";
因为你的字段id是数字,不是文本类型
druide 2002-11-23
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
sunlai 2002-11-23
  • 打赏
  • 举报
回复
你试一下将异常打印出来,看一下是什么问题

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:panchang");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
mystr1="delete * from employee where id = '" + mystr + "'";
stmt.executeUpdate(mystr1);
stmt.close();
conn.close();

}catch (SQLException e){out.print(e);}
内容概要:本文研究了一种针对四机并联孤岛微电网的协同控制策略,通过集成DoS攻击模拟、分布式二次控制、下垂控制与事件触发式负荷控制,旨在实现微电网在遭受网络安全威胁等异常工况下的电压与频率恢复以及有功/无功功率的精确共享分配。基于Simulink平台构建了完整的微电网仿真系统,包含多台分布式发电单元(DG),采用下垂控制实现无需通信的功率自主分配,并引入分布式二次控制以补偿由下垂特性引起的电压和频率偏差,从而提升电能质量。为进一步降低通信负担并提高系统效率,设计了事件触发机制,仅在必要时刻进行信息交互。研究重点在于多时间尺度下的协同控制架构设计,全面验证了该策略在正常运行与遭受DoS攻击等扰动情形下的稳定性、鲁棒性与恢复能力。; 适合人群:具备电力系统、自动控制理论基础,熟悉Simulink/Matlab仿真工具,从事微电网、分布式能源、智能电网及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究孤岛微电网中电压频率恢复与功率均分的多时间尺度协同控制机制;②分析DoS网络攻击对微电网控制性能的影响及其应对策略;③掌握事件触发控制在减少通信开销中的实际应用方法;④复现并拓展具备网络安全防护能力的高级微电网控制算法仿真模型。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者结合现代控制理论与网络安全知识,逐步搭建系统模型,重点关注控制器参数整定、事件触发阈值设计及DoS攻击注入方式,通过对比实验深入理解控制策略的有效性与鲁棒性。

81,110

社区成员

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

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