我们有一个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
1条答案
按热度按时间n8ghc7c11#
我认为零,但超过零的理由,包括一个vbcrlf在什么相当于原始SQL。
如果这是一个文本框的文本,那么好。
所以,这段代码:
因此,您实际上根本不需要vbcrlf。
你只是创建了一些SQL语句,这是一个SQL文本字符串。
请记住,您可能希望使用“较新的”Rosilyn编译器特性。
这意味着你可以这样做:
然而,上面最后一个示例仅在您使用asp.net“应用程序”时有效。如果您作为网站(而不是ASP.NET网站应用程序)打开(和部署),那么IIS(Web服务器)当然会为您执行编译,您必须返回使用“&”符号。
但是,无论哪种方式,您都不需要该sql中的vbcrlf。如上所述,如果这是您要推到文本框中的一些文本,那么当然/很好/很好,您需要vbcrlf。
另外,看一下代码,我认为它无论如何都不会正确编译。
(it错误)
这样说就可以了:
现在,我添加了“xxxx”,因为您发布的代码缺少替换值。
但是,无论如何,您所拥有/拥有内容看起来都不正确,
所以,使用Rosylin,你可以输入自由形式的sql,甚至不需要每行之间的“&”。
但是,这通常意味着您必须移动(或重命名)app_code。
但是,这假定您有一个“asp.net网站应用程序”。
如果你有一个“asp.net网站”呢?
然后IIS进行编译,而不是Visual Studio。
如前所述,您可以(也应该)从sql中删除vbcrlf,但您需要最后一种语法。
将“xxxx”替换为您的替换应该将“%”更改为的内容。
善良的人禁止将一个sql命令对象传递给该例程,所以至少你可以在这里使用参数--就像你从文本框发送原始用户输入一样--这是一个非常但非常糟糕的主意。