iT邦幫忙

0

c# 用dapper連資資庫,sql語法用stringbuilder來接,產生的奇怪問題

  • 分享至 

  • xImage

本人使用.net6 dapper c# 開發WebAPI,進行舊專案的翻寫,想要把SQL Server的stored procedure直接移到WebAPI,之後SQL Server將不再有stored procedure,但是在移的過程中,把stored procedure的內容全部貼到stringbuilder,因為內容全部是查詢,所以把Create PROC 的關鍵字拿字掉,變成一個很長的sql語法,發現一個奇怪的現像,有些可以正常執行,有些則不行,比較短的sql語法可以正常執行,比較長的則不行,把不能正常執行的sql語法換成string就可以正常執行,不知各位大大有没有遇過這個問題?

看更多先前的討論...收起先前的討論...
allenlwh iT邦高手 1 級 ‧ 2023-06-27 12:11:14 檢舉
1.有什麼特殊的原因要移到C#專案內? 以後若要更改stored procedure,就要重新發佈程式了,而且在SQL Server上執行stored procedure,效能不是比較好嗎?(我學的時候是這樣被教育的)
2.我個人是習慣這樣分開做,SQL Server做資料處理,C#取用結果。
為什麼要用stringbuilder??? 我Dapper用下來,都是用string解完呀,所以還真沒遇過這狀況qqq
該 sp 有包含業務邏輯嗎?
我的認知是,既然都需要移植到程式內了,還用 sp 的 方式撰寫是因為時間壓力嗎?
PPTaiwan iT邦好手 1 級 ‧ 2023-06-28 13:29:33 檢舉
你是用那一個版本 sql server , 2016 以上的版本 sp 可以直接導出 json 而 sp 內可以透過 json 資料互傳與處理。

再來 sp 導出 json 而 C# 只要 connection 導出導入資料 json 再丟出去就好了,C# 只要專精 web 的處理就好了。

sp 用的好,你也可以做到部份的物件導向的應用
sp 有包含業務邏輯,專案有時間壓力,如果把原本的sp寫成linq,怕會寫錯又費時
stringbuilder效能比較好
PPTaiwan iT邦好手 1 級 ‧ 2023-06-28 16:09:08 檢舉
stringbuilder 用太多反而難以閱讀與維護

以 C# 我就以 string _strTSQL=@"幾百行的 sql script";
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答