sql server-用jsp删除数据库数据时数据库无返回。但是如果SQL语句直接写出变量,返回删除成功了。

问题描述

用jsp删除数据库数据时数据库无返回。但是如果SQL语句直接写出变量,返回删除成功了。
<%
response.setContentType(""text/html"");
request.setCharacterEncoding(""GBK"");
response.setCharacterEncoding(""GBK"");
String name = new String(request.getParameter(""name"").getBytes(""ISO-8859-1"")GBK"");
out.print(name);
String driverName = ""com.microsoft.sqlserver.jdbc.SQLServerDriver""; //加载JDBC驱动

String dbURL = ""jdbc:sqlserver://localhost:1433; DatabaseName=化妆品管理系统""; //连接服务器和数据库sample

String userName = ""sa""; //默认用户名

String userPwd = ""123456""; //密码
Connection conn;
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL userName userPwd);
Statement stat = conn.createStatement();
String sql =
DELETE FROM customers WHERE customername ='郭海涛'"";
int i = stat.executeUpdate(sql);
out.println(i);
%>
** ""DELETE FROM customers WHERE customername ='郭海涛'"";**
这样就可以删除成功。
** ""DELETE FROM customers WHERE customername ='name'"";**
这样就删除不了。
但是打印出来name的值就是‘郭海涛’,没有乱码。

解决方案

如果使用的是这句话,""DELETE FROM customers WHERE customername ='name'"",这句话被包含在双引号中间,显然是个字符串,其中的name被当做字符串的一部分,所以送给数据库的语句就是DELETE FROM customers WHERE customername ='name',也就是说你的变量name没有被'郭海涛'替换掉,你可以使用""DELETE FROM customers WHERE customername ="" +'""' + name+ '""'这一句,将变量放在字符串外面。

解决方案二:
编码问题吧,看看这个 http://blog.sina.cn/dpool/blog/s/blog_641d569301010vsj.html?vt=4
可以debug输出查询语句,看看是不是在提交到数据库之前就已经乱码了,,,

解决方案三:
你试试改成国际化的utf-8的编码试一试,还有可能是你的数据库与之不匹配的问题

解决方案四:
""DELETE FROM customers WHERE customername ='name'""

name是变量,要用实际的内容替换掉

时间: 2024-12-02 15:28:13

sql server-用jsp删除数据库数据时数据库无返回。但是如果SQL语句直接写出变量,返回删除成功了。的相关文章

sql server 2012-关于bcp导出数据时使用queryout的问题

问题描述 关于bcp导出数据时使用queryout的问题 EXEC master..xp_cmdshell 'bcp GTA_SeL1_TAQ_200601.dbo.SHL1_TAQ_600000_200601 out E:temp.xlsx -T -c -q'; EXEC master..xp_cmdshell 'bcp ''SELECT TDATETTIMECPS1B1 FROM GTA_SeL1_TAQ_200601.dbo.SHL1_TAQ_600000_200601''queryout

c#-C#执行PACK删除DBF数据时ExecuteNonQuery出现死循环

问题描述 C#执行PACK删除DBF数据时ExecuteNonQuery出现死循环 conn.Open(); sql = "pack " + tb_zbs; cmd.CommandText = sql; cmd.ExecuteNonQuery(); 解决方案 什么叫做死循环,tb_zbs的内容是什么? 解决方案二: tb_zbs是DBF表的名字,就是在ExecuteNonQuery这里就卡死了..

SQL Server分布式分区视图分解数据表

分布式分区视图可以将来自一个或多个SQL Server数据库中的数据连接起来.当开发一个水平分区数据库环境时,你可以使用分布式分区视图将来自不同服务器的分区表连接起来,使得这些数据看起来像来自同一个服务器. 你可以设计这些视图,因此,如果你的潜在数据表结构设计合理的话,查询优化器就可以知道从那个数据表得到查询需要的数据,从而加速运行.一个设计合理的分布式分区视图还可以实现更新.插入和删除.我们将在本文的下一部分深入探讨它是如何实现这样操作的. 示例 本例中,我们假设SalesHistory表非常

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案[转]

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号"???" 解决办法: 第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→把选项中的排序规则设置成:Chinese_PRC_90_CI_AS→最后点击确定即可.(注意:在选择数据库属性的时候必须确保你所修改的数据库未被使用才可以修改否则会失败的) 第二种办法:首先打开你的sql查询分析器

实现删除主表数据时, 判断与之关联的外键表是否有数据

问题描述:某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化 问题解决(SQL Server 2005)-- SQL Server 2005的错误处理容易控制, 因此, SQL Server 2005中可以直接删除, 通过错误处理来确定是否需要更新. -- 示例如下.USE tempdbGO CREATE TABLE m(    id int PRIMARY KE

Excell导SQL Server 某列包含混合数据 导致非数字串为null

  [问题描述]     Excell文件导入SQL Server时,某列数据中即包含纯数字组合的串,也包含带有个别字母的串.导入数据库时,该列的所有非纯数字串为null.例如:     Excell文件:     Sid    Name    Code     1        Jerry       1001     2        Merry      CN01     3        Mark       1002     导入数据库表后:     1      Jerry    

SQL SERVER 重组含有特殊字符的索引时遇到&amp;ldquo;关键字 &#039;with&#039; 附近有语法错误.&amp;rdquo;

原文:SQL SERVER 重组含有特殊字符的索引时遇到"关键字 'with' 附近有语法错误." 案例描述     这是在索引重组过程中遇到的有意思的错误案例,搜索了一下也没有看到相关资料,估计我第一个碰到这类错误的人(It's just a joke).具体情况是YourSQLDba在做维护数据库索引时遇到了索引重组错误,然后我排查时就发现了这个案例.我下面用一个简单的测试例子演示一下具体情况.   数据库版本: SQL SERVER 2005 CREATE TABLE TEST

Vertica的这些事&amp;lt;六&amp;gt;—— SQL Server、Oracle、MySQL和Vertica数据库常用函数对比

SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 绝对值 S:select abs(-1) value O:select abs(-1) value from dual M:select abs(-1) value from dual V:select abs(-1) 向上取整 S:select ceiling(-1.001) value O:select ceil(-1.001) value from

【多图】SQL Server 2000如何向SQL Server 2008 R2推送数据

最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他"服务器"向我们服务器推送的方式实现.我们服务器使用的是sql server 2008 R2,其他"服务器"使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定. [一.配置分发服务器] SQLServer 2000的复制服务包括三个角色:发布服务器.分发服务器和订阅服务器,关系如图1所示.   图1