【发布时间】:2013-11-06 10:19:30
【问题描述】:
我正在使用数据集和表格适配器来填充数据网格视图。在我的 SQL 语句中,我对其中的两列使用了 RTrim 函数。对于他们两个,我将结果变量设置为与原始列名相同的名称。
这可行,但我无法使用数据集更新数据,因为修剪后的值是只读的。
我想要的是用修剪后的值填充数据网格视图,然后能够使用相同的数据集进行更新。这看起来很简单,但它不允许我这样做。除了我使用Trim 的两列之外,所有内容都会更新。
这是我正在使用的 SQL 语句。
SELECT
PK, RTRIM(Description) AS Description, ContractNumber,
RTRIM(Status) AS Status, Active
FROM
ConstructionProjects
ORDER BY
CASE WHEN ContractNumber > 0
THEN ContractNumber
ELSE 99999
END
我知道我可以轻松地在 Windows 应用程序中修剪客户端的单元格,但我正在寻找一种在 SQL 端的查询中执行此操作的方法。有没有一种简单的方法可以做到这一点,并且仍然可以调用Update 方法?
谢谢,
马特·福米奇
【问题讨论】:
-
一种可能的解决方法是尝试加载列描述和状态而不进行修剪操作,然后将它们隐藏在您的网格视图中。当您更新修剪(和可见)列时,将值复制回同一行中未修剪(和隐藏)的列。然后更新应该像往常一样工作。
-
那行得通,谢谢。这可能比修剪描述和状态中的每个单元格的开销要少一些。我明天会试试这个并发布性能结果。谢谢!
-
很高兴你喜欢它。我将重新发布评论作为答案。
标签: c# sql sql-server-2005 datagridview