【问题标题】:Updating with Dataset while using Trim function使用 Trim 功能时更新数据集
【发布时间】: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


【解决方案1】:

一种可能的解决方法是尝试在不进行修剪操作的情况下加载列描述和状态,然后将它们隐藏在您的网格视图中。当您更新修剪(和可见)列时,将值复制回同一行中未修剪(和隐藏)的列。然后更新应该像往常一样工作。

也许您应该更改列的名称。 (修剪后的描述和状态列)

【讨论】:

    猜你喜欢
    • 2017-02-06
    • 2020-08-02
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多