【问题标题】:C# Typed Dataset corrupts CommandTextC# 类型化数据集损坏 CommandText
【发布时间】:2015-06-26 19:21:57
【问题描述】:

我需要对使用类型化数据集的旧 C# Windows 窗体应用程序 (.net 3.5) 执行一些维护。为此,我一定会使用 VS 2010。

问题如下,当我只是“触摸”一个类型化的数据集时,或者只是在进行了一些重建之后,数据集设计器文件中的 CommandText 已损坏。自动放置 CR+LF 和空格,例如

this._adapter.InsertCommand.CommandText = "\r\n                      dbo.NameOfAStoredProcedure\r\n                    ";

当执行搜索/替换以消除这种不需要的更改时,它会工作一段时间,然后问题再次出现。

关于可能导致此问题的原因以及如何解决此问题的任何想法?

【问题讨论】:

  • 一种解决方法可能是在代码中创建适配器(而不是使用 Designer 工具)。
  • 如果我无法解决设计器问题,那将是一个不错的最后手段。谢谢。

标签: c# strongly-typed-dataset


【解决方案1】:

为什么你认为它被破坏了?它应该对行为没有影响。

无论如何,这正是您在 XML 中嵌入文本时所期望的输出。例如:

<CommandText>
  dbo.NameOfAStoredProcedure
</CommandText>

如果您对空格(应该忽略)有些迂腐,请执行以下操作:

<CommandText>dbo.NameOfAStoredProcedure</CommandText>

【讨论】:

  • 相信我,tableadapter 无法像这样执行 sp。
  • 找不到存储过程“dbo.NameOfAStoredProcedure”。请注意程序名称前后的空格...
  • 好的,我刚刚对其进行了测试,并在多行上得到了相同的结果(C# 字符串中的空格/换行符)。如图所示,问题出在您的 XML 上。如果一切都在一条线上,它就像你想要的那样工作。如果它仍然改变,那么自动格式化程序可能会干扰。如果还是不能解决,那就在应用启动时编写一些代码来修剪命令文本字符串。
  • 现在我也像您之前提到的那样从 .xsd 文件中删除了空格。现在看来,designer.cs 是机智的。我会再跑几次,看看它是否会保持这种状态,然后对我来说足够好。谢谢!
  • 我认为某些东西可能正在编辑 xsd 文件的文本或对其进行格式化。
【解决方案2】:

尝试删除文件并重新生成已删除的文件。

只需创建另一个文件并复制粘贴相同的内容。并删除前一个。

请务必备份!祝你好运

【讨论】:

  • 我创建了一个新的类型化数据集。复制/粘贴表格/适配器,但没有运气。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 2021-10-21
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
相关资源
最近更新 更多