【问题标题】:Read text file within a .NET project读取 .NET 项目中的文本文件
【发布时间】:2009-11-11 13:47:53
【问题描述】:

有没有一种方法可以打开和读取 .NET 项目中的文本文件?我知道我可以使用 System.IO.StreamReader 类来处理 Windows 文本文件。

我想在我的项目中的文本文件中存储一些用于升级我的数据库的 SQL 脚本。由于我是在 VB 中编写的,由于行延续,我不能直接将脚本粘贴到我的代码中,如果它是 C#,我可以。这些是很长的脚本。

【问题讨论】:

  • 为什么不为每个长脚本创建一个存储过程?
  • 你有没有想过把这些脚本变成存储过程?
  • 那么问题是什么,既然您知道 StreamReader?
  • 我认为他的问题是这些脚本将用于更新应用程序的数据库,因此,不会在数据库中并且可以临时提供。我只是不确定他在文本文件和 Windows 文本文件之间看到了什么区别。
  • 通过文本文件 vx. Windows 文本文件我试图在文本文件和嵌入到我的项目中的文本文件之间进行区分。

标签: .net sql vb.net


【解决方案1】:

项目中的文本文件不会添加到您的可执行文件中。您可以在 .sql 文件的属性中启用Copy to Output Directory。这会将它们与您的程序集一起复制到 bin 目录。

从那里,您的程序可以像读取任何其他文件一样读取它们。

【讨论】:

    【解决方案2】:

    作为资源嵌入到程序集中,然后在运行时使用ResourceManager 将它们读入StreamString

    【讨论】:

      【解决方案3】:

      您可以使用嵌入式资源并在Assembly.GetManifestResourceStream 返回的流上使用 StreamReader 来读取这些资源。

      【讨论】:

        【解决方案4】:

        我自己也遇到过这个问题。 我可以看到 Jeff 接受了将源文件复制到项目文件夹中的解决方案。

        但是,我不喜欢将 db-create/drop/alter 脚本放在文件区域上。我发现这个问题后来又被问到了。这是solution I implemented 使用嵌入式资源取得巨大成功的原因。

        我们的解决方案涉及分布在可能多个数据库实例上的分布式数据库。我们实施了一个解决方案,其中包括一个包含“分片”数据库的所有设置信息的主数据库。拥有一个“SqlUpdate”引擎,我们可以让所有分布式分片保持最新。

        【讨论】:

          猜你喜欢
          • 2010-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多