使用C#和SQL Server解析逗号分隔字符串的最佳实践

时间:2014-09-24 09:55:27

标签: c# sql sql-server parsing csv

我有一台SMS机器,每次有消息到达时,它会向填充SQL Server数据库表的页面发出POST。 消息的内容如下:

#MessageType#Variable1:Value1,Variable2:Value2,Variable3:Value3

现在我有了消息文本,我要解析它以获取值并填充另一个表。 解析消息的最佳做法是什么?直接在SMS机器POST的代码隐藏处?在带有触发器的SQL Server中?

考虑到我将在同一台SMS机器上收到许多带有不同变量的消息类型

1 个答案:

答案 0 :(得分:1)

通常情况下,您希望避免给数据库服务器带来比现有更多的负载(我见过这种情况并非如此,但通常是这样)。

因此,在插入它时直接做这样的事情(将要插入到sql server中的文本格式化)几乎总是更好(因此在处理POST的服务器的位置。

在您的情况下,您有2个选项可用于将文本转换为适合您数据库的值:

  • 正则表达式
  • 2个组合拆分(一个用于,一个用于:)

正常情况下首选正则表达式除非程序员对正则表达式表达式不熟悉,否则通常会在那里使用第二种方法(如果你不习惯正则表达式会非常麻烦)