我有一个带有“代码”列的表,定义为varchar
. 但是,如果您在某些记录中只有数字,对于此字段,并且您在我们的应用程序中搜索这些记录,网格 (DevExpress) 中的结果将被格式化为数字。
当您在包含 的结果中有记录时,a-z
格式化就不会发生。所以我想看看我是否可以从数据库端解决这个问题。我在表上创建了一个视图,并将有问题的列更改为:
:
Code + CHAR(144) AS Code
:
这解决了网格中字段的格式。该字段现在将始终被视为字符串,即使结果仅包含数字也是如此。
然而,问题是,如果我现在在应用程序的前端明确搜索此值,例如Code = 40E
,由于特殊字符(不可见),我没有得到任何结果。所以我只是部分解决了这个问题。一开始我尝试只在该字段中添加一个尾随空格,但这没有用。
如果可能的话,有什么想法可以从数据库中解决这个问题吗?
我只能访问 SQL 对象,因此我试图通过 SQL 解决这个问题。有没有办法在数据库视图中解决这个问题,同时确保没有有趣的字符附加到影响搜索的字段值?
从后面的代码强制 GridView 列格式:
如果您要从后面的代码中添加它,如果不访问列并设置格式。
这不是 SQL 问题,数据以应该存储的格式存储,在这种情况下,前端应该处理显示格式。如果您创建一个视图,同样的事情也会发生,因为网格仍然会尝试猜测列类型。与开发人员交谈。
社区 Wiki 答案
在此表上创建一个视图,该视图具有列的字符表示。该应用程序将搜索
code
,但显示code_char
。通常网格控件允许单独设置每一列的格式。请参阅该属性的
DevExpress.XtraGrid.Columns
文档。GridColumn.DisplayFormat