【问题标题】:asp.net VB Concatenating String in SQL QuerySQL查询中的asp.net VB连接字符串
【发布时间】:2019-01-21 14:48:39
【问题描述】:

我有一个 ASP.NET VB 应用程序,它尝试通过 SQL 查询连接到 SQL 数据库。我目前已设置好,以便用户通过以下方式在文本框中输入成员的名称:

<SelectParameters>
            <asp:ControlParameter ControlID="textEntry" Name="Member_Name" PropertyName="Text" Type="String" />
        </SelectParameters>

然后我有一个带有 SQLDataSource 的 GridView。在 SelectCommand 中,我有以下字符串试图从文本框中引用 Member_Name:

 SelectCommand = "SELECT [Membership_ID], [Membership_Name], Sum([Spend_Total]) as Spend_Total FROM [Member_Table]
            WHERE ([Membership_Name] LIKE" '%' +  @Member_Name + '%' +") 
            GROUP BY Membership_ID, Membership_Name
            "

但这不起作用。我实际上是在尝试复制 SQL LIKE '% string %' 功能,但我看不出我的代码有什么问题/如何修复它。

【问题讨论】:

  • 为什么是"&amp;"?试试SELECT [Membership_ID], [Membership_Name], Sum([Spend_Total]) as Spend_Total FROM [Member_Table] WHERE [Membership_Name] LIKE '%' + @Member_Name + '%' GROUP BY Membership_ID, Membership_Name
  • 我建议您首先尝试使用= 而不是LIKE 并删除“%”,然后使用数据库中的实际条目。调试少了一件事情。
  • @AndrewMorton 这就是我最终要做的! LIKE 的复杂性太多,查询时间也更长!

标签: sql asp.net vb.net


【解决方案1】:
SelectCommand = "SELECT [Membership_ID], [Membership_Name], Sum([Spend_Total]) as Spend_Total FROM [Member_Table]
        WHERE ([Membership_Name] LIKE '%' +  @Member_Name + '%') 
        GROUP BY Membership_ID, Membership_Name
        "

【讨论】:

  • 你好。这对我不起作用。我遇到了和以前一样的问题。
  • "same issue" 对我们没有任何帮助,因为原始问题从不共享服务器报告的错误。
  • 作为一个附带问题,可以在字符串中使用连接运算符“+”吗?我认为它们只能在字符串之外使用。
  • 只是在上述评论中提出问题,因为您已将连接运算符放在字符串中。
  • @ThomasMoore + 号是 SQL 的一部分。它不是在.Net 中连接两个字符串
猜你喜欢
  • 2014-12-07
  • 2014-11-14
  • 2015-05-06
  • 2017-03-30
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多