我們有一個需要調整的 asp.net 專案。我已經在 VB 中將專案作為網站打開。
很煩人的是VB去掉了&vbCrLf & _中的下劃線導致在瀏覽器中運行時出錯。
這是我可以關閉的選項嗎?原始代碼:
txtProdOrder.Text = oSqlDb.GetFieldValue("select ph.ProdHeaderOrdNr from T_PartDispatch PD " & vbCrLf & _
"Inner Join dbo.T_ProductionHeader As ph On PH.ProdHeaderDossierCode = PD.ProdHeaderDossierCode " & vbCrLf & _
"Where PD.PicklistNr = N' & Replace(TXTPICKLISTNR.Text, %, ) & '")
MsgBox(wat)
笏 vb 做:
"select ph.ProdHeaderOrdNr from T_PartDispatch PD " & vbCrLf &
"Inner Join dbo.T_ProductionHeader As ph On PH.ProdHeaderDossierCode = PD.ProdHeaderDossierCode " & vbCrLf &
"Where PD.PicklistNr = N' & Replace(TXTPICKLISTNR.Text, %, ) & '"
enter code here
uj5u.com熱心網友回復:
我看到零,但超出了零的理由,將 vbcrlf 包含在相當于原始 SQL 的內容中。
如果這是文本框的文本,那很好。
所以,這段代碼:
txtprodOrder.Text =
oSqlDb.GetFieldValue("select ph.ProdHeaderOrdNr from T_PartDispatch PD " &
"Inner Join dbo.T_ProductionHeader As ph On PH.ProdHeaderDossierCode = PD.ProdHeaderDossierCode " &
"Where PD.PicklistNr = N' & Replace(TXTPICKLISTNR.Text, %, ) & '")
所以,你真的根本不需要 vbcrlf。
您只是創建了一些 SQL,那是一串 sql 文本。
請記住,您可能希望使用“較新”的 Rosilyn 編譯器功能。
這意味著你可以這樣做:
txtprodOrder.Text =
oSqlDb.GetFieldValue(
"select ph.ProdHeaderOrdNr from T_PartDispatch PD
Inner Join dbo.T_ProductionHeader As ph
On PH.ProdHeaderDossierCode = PD.ProdHeaderDossierCode
Where PD.PicklistNr = N'" & Replace(TXTPICKLISTNR.Text, "%", ""))
但是,上面最后一個示例僅在您使用 asp.net“應用程式”時才有效。如果您作為網站(而不是 asp.net 網站應用程式)打開(和部署),那么 IIS(網路服務器)當然會為您進行編譯,您必須回傳使用“&“ 符號。
但是,無論哪種方式,您都不需要該 sql 中的 vbcrlf。如前所述,如果這是您要塞入文本框中的一些文本,那么確定/很好/很好,您需要 vbcrlf。
此外,查看該代碼,我認為它無論如何都不會正確編譯。
(貼錯了)
說這會/應該沒問題:
txtprodOrder.Text = oSqlDb.GetFieldValue("select ph.ProdHeaderOrdNr from T_PartDispatch PD " &
"Inner Join dbo.T_ProductionHeader As ph On PH.ProdHeaderDossierCode = PD.ProdHeaderDossierCode " &
"Where PD.PicklistNr = N'" & Replace(TXTPICKLISTNR.Text, "%", "xxxxx") & "'")
現在,我添加了“xxxx”,因為您發布的代碼缺少替換值。
但是,無論如何,您擁有/擁有的東西看起來都不正確,
因此,使用 Rosylin,您可以輸入自由格式的 sql,甚至不需要每行之間的“&”。
但是,這通常意味著您必須移動(或重命名)app_code。
但是,這假設您有一個“asp.net 網站應用程式”。
如果你有一個“asp.net 網站”?
然后 IIS 進行編譯,而不是 Visual Studio。
如前所述,您可以(并且應該)從 sql 中洗掉 vbcrlf,但您需要最后一種語法。而且您的替換命令看起來非常混亂。
將“xxxx”替換為您的替換應該將“%”更改為的內容。
天哪,將 sql 命令物件傳遞給該例程,因此至少您可以在此處使用引數 - 作為從文本框中發送原始用戶輸入 - 這是非常但非常糟糕的主意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/524386.html
標籤:网
上一篇:注入前如何修改IOptions?