UPDATE SQL 不同環境執行結果不一樣

2022-02-23 22:29:02 字數 1378 閱讀 8398

背景:1.前台:jquery 提交資料

2.後台:owin c#  處理接收資料

3.資料庫: postgresql

問題描述:  後台接收到前台的資料,拼裝乙個 sql 語句

update

wbs_data

set work_data=

'',work_state=

1where pwbs_id=

124

我在後台c# 用 npgsql執行時總是報錯:invalid input syntax for type  json

public

static

string executesql(string

strsql)

", strsql);

string returnvalue = string

.empty;

npgsqlconnection connection = new

npgsqlconnection(getconnectionstring());

npgsqlcommand command = new

npgsqlcommand();

command.connection =connection;

command.commandtext =strsql;

try";

console.writeline("

","--------------------you are lucky----------------");

returnvalue = "";

}catch

(exception err)";}

finally

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=

''::json,work_state=

1where pwbs_id=

124

ASP執行環境

一 建立 asp 執行環境 首先建立乙個空的目錄,在你喜歡的位置,假設是 d websvr。將 netbox.exe 複製到這個目錄,然後在目錄中創 上面的 摘自 建立乙個 web 伺服器 其中加粗的部分是預設檔名,如果你的應用不同,可以自行新增修 改。二 複製 asp 應用 在目錄中再建立乙個子目...

Python執行環境

python直譯器啟動 一,python options c cmd filename args 選項 描述 3 啟用將從python 3中刪除或更改某些功能的警告 b 阻止在匯入時建立.pyc或.pyo檔案 e 忽略環境變數 h 列印所有可用命令列選項的列表 i 在程式執行後進入互動模式 m mo...

Web執行環境

小夥伴們,當我們剛開始做專案的時候,都會提前安裝web執行環境 一般安裝的都是整合環境 這時候就會有很多小朋友問了 安裝執行環境是必要的麼?在這裡就要分情況了,如果你做的是乙個單頁面沒有涉及到後端以及資料庫的話,執行環境不安裝也可以 這種情況只適合初學者 當我們做的是乙個完整的 或者其他專案時,執行...