【问题标题】:Searching ASP.NET SQL DataSet for Postcode在 ASP.NET SQL 数据集中搜索邮政编码
【发布时间】:2011-03-28 22:19:04
【问题描述】:

我正在 ASP.NET 中做一个项目,该项目有一次使用数据集在 SQL 数据库中搜索邮政编码:

string postcode = "%" + searchTerm.Trim().Replace(' ', '%') + "%";
SearchDataSet.SearchCustomerTableDataTable custTable = custAdapter.GetDataCustPostcode(postcode);

GetDataCustPostcode 运行:

SELECT * FROM CustomerTable WHERE (CustomerPostcode LIKE @CustPostcode)

我尝试时返回预期的结果:

searchTerm = "BT14" 搜索 %BT14% 的 postcode

searchTerm = "BT14 7" 搜索 %BT14%7% 的 postcode

我尝试时custTable 为空:

searchTerm = "BT14 7D" 搜索 %BT14%7D% 的 postcode

如果我尝试直接编写 SQL 查询,即键入:

SELECT * FROM CustomerTable WHERE (CustomerPostcode LIKE '%BT14%7D%')

然后返回预期的结果。

谁能告诉这是为什么?和字符串中的字符有关系吗?

谢谢

克莱夫斯特

【问题讨论】:

  • 这很奇怪!当我今天早上尝试它时,它起作用了。我根本没有修改代码。也许重启有帮助?无论如何,现在一切正常。谢谢

标签: sql asp.net dataset sql-like


【解决方案1】:

%7d 在某些情况下是一个特殊的角色......也许是这个?其他组合也发生了问题吗?

【讨论】:

  • 感谢您的回复。它还为BT14 7E但不是BT14 9E span>
【解决方案2】:

考虑将单字符通配符、下划线用于字符串中间匹配,而百分比仅用于字符串末尾。

【讨论】:

  • 感谢您的回复。我想我必须在中间使用一个百分比,因为邮政编码可能是BT147DTBT14 7DT。那正确吗?或者是否有另一个更合适的通配符
  • 不幸的是,没有。根据您的评论,我很高兴事情对您有用。如果您有兴趣了解有关支持的不同通配符的更多信息,请查看:manuals.sybase.com/onlinebooks/group-asarc/srg1100e/sqlref/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多