UPDATE SQL 不同环境执行结果不一样
背景:1.前台:JQUERY 提交数据
2.后台:OWIN C# 处理接收数据
3.数据库: postgresql
============================================
问题描述: 后台接收到前台的数据,拼装一个 SQL 语句
update wbs_data
set work_data='{"proName":"科研GOOD","proCode":"科研项目001","unitProName":"No1","drawingNo":"734116","proAddress":"大庆",
"partsComponents":"让胡路锅底",
"checkContent":"<p><br/> 这是一测试图片<img src=\"/upload/8096b2b7d0a20cf4cd425f7a7f094b36adaf995e.jpg\" alt=\"\"
width=\"200\" height=\"200\" /> <br/></p>",
"checkOpinion":"检查意见:<br/>1.好<br/>2.很好<br/>3.非 常好","materialDocs":"原材料质量文件:<br/>1.测试文件1<br/>2.测试文件2",
"monitor":"","deputy":"","superEngineer":"","techLeader":"","date1":"","date2":"","date3":""}',work_state=1
where pwbs_id=124
我在后台C# 用 Npgsql执行时总是报错:invalid input syntax for type json
public static string executeSQL(string strSQL)
{
Console.WriteLine("{0}", strSQL);
string returnValue = string.Empty;
NpgsqlConnection connection = new NpgsqlConnection(getConnectionString());
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = connection;
command.CommandText = strSQL;
try
{
connection.Open();
command.ExecuteNonQuery();
//returnValue = "{\"SUCCESS\":\"执行操作:'" + strSQL + "'成功!\"}";
Console.WriteLine("{0}","--------------------you are lucky----------------");
returnValue = "{\"SUCCESS\":\"操作成功!\"}"; }
catch (Exception err)
{
returnValue = "{\"ERROR\":\"发生以下错误:" + err.Message.ToString() + "\"}";
}
finally
{
connection.Close();
}
return returnValue;
}
奇怪的是,当我把这个拼装的SQL语句放在后台服务上PSQL 运行时,居然还通过了!
why??????
========================================================
经过测试发现:
我在获取生成JSON 串时,有个replace(/\s/g, ' ')(JS代码中)没有加,而当我加上时就不再有这个问题
然而,另一位大神给出最本质的原因:
我在PSQL 中执行SQL ,实际是做了强制转化,而我在C# 中运行是没有经过处理的应该把SQL变成这样:
update tablename set column = value::json where id = _id;
即我上面的代码应该转化为:
update wbs_data
set work_data='{"proName":"科研GOOD","proCode":"科研项目001","unitProName":"No1","drawingNo":"734116","proAddress":"大庆",
"partsComponents":"让胡路锅底",
"checkContent":"<p><br/> 这是一测试图片<img src=\"/upload/8096b2b7d0a20cf4cd425f7a7f094b36adaf995e.jpg\" alt=\"\"
width=\"200\" height=\"200\" /> <br/></p>",
"checkOpinion":"检查意见:<br/>1.好<br/>2.很好<br/>3.非 常好","materialDocs":"原材料质量文件:<br/>1.测试文件1<br/>2.测试文件2",
"monitor":"","deputy":"","superEngineer":"","techLeader":"","date1":"","date2":"","date3":""}'::json,work_state=1
where pwbs_id=124
UPDATE SQL 不同环境执行结果不一样的更多相关文章
- 如何判断一条sql(update,delete)语句是否执行成功
如何判断一条sql(update,delete)语句是否执行成功 catch (SQLException e) { } catch不到错误应该就成功了. ============== ...
- 【mybatis】service层中一个方法中使用mybatis进行数据库的 多个修改操作,可能是update也可能是delete操作,但是sql语句命名执行并且在控制台打印出来了,但是数据库中未更新到数据【事务的问题】
问题描述: service层中一个方法中使用mybatis进行数据库的 多个修改操作,可能是update也可能是delete操作,但是sql语句命名执行并且在控制台打印出来了,但是数据库中未更新到数据 ...
- 大型面试现场:一条update sql执行都经历什么?
导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 24 篇. 今天我要跟你分享的MySQL话题是:"从一条update sql执行都经历什么开始,发散开一系列的问题,看看你能抗到第几 ...
- 修改数据库用户名--CMD环境执行有效
--CMD环境执行有效 --修改数据库用户名 select * from user$ where name='aa'; update user$ set name='bb' where name ...
- SQL语言逻辑执行顺序
SQL语言逻辑执行顺序 2012-12-18 16:18:13 分类: 数据库开发技术 查询的逻辑执行顺序 FROM < left_table> ON < join_conditio ...
- SQL select语句执行顺序
sql查询原理和Select执行顺序 关键字: 数据库 一 sql语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是 ...
- 面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- ORACLE数据库SQL语句的执行过程
SQL语句在数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库系统架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQ ...
- SQL SERVER 2012 执行计划走嵌套循环导致性能问题的案例
开发人员遇到一个及其诡异的的SQL性能问题,这段完整SQL语句如下所示: declare @UserId INT declare @PSANo VAR ...
随机推荐
- hbase exporter importer 导出 导入
导出: bin/hbase org.apache.hadoop.hbase.mapreduce.Export bigtable /user/bigtable_bak/ 导入: bin/hbase or ...
- sort命令实战
本文参考:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html 东方雨中漫步者 sort命令,帮助我们依据不同的数据类型进 ...
- p4171&bzoj1823 满汉全席
传送门(洛谷) 传送门(bzoj) 题目 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能 ...
- SpringBoot应用篇(一):自定义starter
一.码前必备知识 1.SpringBoot starter机制 SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在mave ...
- 洛谷P3070 [USACO13JAN]岛游记Island Travels
P3070 [USACO13JAN]岛游记Island Travels 题目描述 Farmer John has taken the cows to a vacation out on the oce ...
- [Xcode 实际操作]四、常用控件-(3)UILabel文本标签的使用
目录:[Swift]Xcode实际操作 本文将演示标签控件的基础用法, 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class Vie ...
- IOS UIWebView与js的简单交互swift3版
在开发过程中,我们可能遇到ios代码与js交互的情况,本人第一次使用遇到了很多坑,这里纪录一下,方便自己,也方便需要的人. 1.第一步先建一个接口(协议)并继承JSExport 这里实现两个方法提供给 ...
- LeetCode 671. Second Minimum Node In a Binary Tree二叉树中第二小的节点 (C++)
题目: Given a non-empty special binary tree consisting of nodes with the non-negative value, where eac ...
- ElasticStack之Elasticsearch集群搭建
需搭建服务器环境 操作系统 Host:port node 1 CentOS 7.2.1511 11.1.11.127:9200 node1 2 CentOS 7.2.1511 11.1.11.128: ...
- Java Script 第二章.
对象: JavaScript中的所有事物都是对象:字符串,数组,数值,函数..... JavaScript中提供多个内建对象,比如说 String, Date, Array等等.对象只是带有属性和 ...