【问题标题】:String with apostrophe doubles when bound to property绑定到属性时带有撇号的字符串加倍
【发布时间】:2018-01-26 17:57:07
【问题描述】:

我有一个 radgridview,其中一个单元格的数据可能包含撇号。选择行时,行上下文将转换为公共属性的集合。除了带有撇号的单元格之外,这很有效。

    Private Sub dgSelectOrder_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)

    Dim row = TryCast(sender, GridViewRow)
    Dim selectedOrder = TryCast(row.DataContext, myProperties)

如果单元格数据有撇号,例如 LET'S GO,则属性返回值 LET''S GO。撇号加倍。如果该数据被保存回数据库,然后再次检索,则该属性返回 LET''''S GO。

如何正确转换行数据?

Public Class myProperties

    Public Property pProjectNbr As String = String.Empty

谢谢。

【问题讨论】:

  • 数据如何保存到数据库中?是否使用了自定义方法?
  • 是的,通过sql插入和更新语句,带参数。数据库中的数据看起来很好。用一个撇号存储的数据。

标签: wpf vb.net radgridview


【解决方案1】:

我不应该这样做,但这是唯一可行的方法。我有类似的代码将 row.datacontext 投射到其他地方。该代码使用撇号按预期运行。

    Private Sub dgArchivedOrders_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)

        Dim row = TryCast(sender, GridViewRow)
        Dim selectedOrder = TryCast(row.DataContext, myProperties)

        If selectedOrder.pProjectNbr.Contains("''") Then
            Dim convertThis As String = selectedOrder.pProjectNbr
            selectedOrder.pProjectNbr = convertThis.Replace("''", "'")
        End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多