1

我试图从资源文件夹中的 .SQL 文件中读取 SQL 语句,我现在有 2 个 .SQL 文件,它可以正确读取一个,另一个返回一个NullRefrenceException

这是我对 sql 文件的调用:

 string sqlFailRecordNoMatch = EmbeddedResource.GetString("Resources.SQLScripts.RecordNumberFailQuery.sql");

这是GetString方法:

public static string GetString(System.Reflection.Assembly assembly, string name)
{
    System.IO.StreamReader sr = EmbeddedResource.GetStream(assembly, name);
    string data = sr.ReadToEnd();
    sr.Close();
    return data;
}
4

2 回答 2

3

你会得到一个NullReferenceException对另一个的唯一原因是:

  1. 失败的那个没有设置为Embedded Resource. 您可以通过单击 中的文件Solution Explorer并点击 来检查F4
  2. 您使用了错误的完全限定路径。

我怀疑它是#1。

于 2013-06-05T13:45:04.177 回答
0

如果您只使用 Visual Studio 中的资源编辑器,会容易得多:

  • 在您的项目中创建一个新文件夹(可能称为Queries
  • 右键单击此文件夹并选择添加 - 新项目
  • 在对话框中只需选择Textfile并为其命名有关此查询将执行的操作
    • 确保将文件扩展名替换.txt.sql
  • 只需将您的声明直接放入此文件中
  • 在资源编辑器中将此文件添加为资源(通常位于项目的属性文件夹下,或者也可以通过添加 - 新项目 - 资源文件来创建它)
  • 现在,您只需使用即可在代码中访问此 sql 语句Properties.Resources.MySqlStatement
于 2013-06-05T13:49:46.057 回答