asp.net Visual Basic从我的aspx.vb代码中删除下划线

vlju58qv  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(141)


我们有一个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
n8ghc7c1

n8ghc7c11#

我认为零,但超过零的理由,包括一个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(Web服务器)当然会为您执行编译,您必须返回使用“&”符号。
但是,无论哪种方式,您都不需要该sql中的vbcrlf。如上所述,如果这是您要推到文本框中的一些文本,那么当然/很好/很好,您需要vbcrlf。
另外,看一下代码,我认为它无论如何都不会正确编译。
(it错误)
这样说就可以了:

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命令对象传递给该例程,所以至少你可以在这里使用参数--就像你从文本框发送原始用户输入一样--这是一个非常但非常糟糕的主意。

相关问题