StreamReader Null引用异常

时间:2013-06-05 13:42:18

标签: c# sql nullreferenceexception streamreader

我试图从资源文件夹中的.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;
}

2 个答案:

答案 0 :(得分:2)

你唯一的理由就是NullReferenceException与其他人相比:

  1. 失败的那个未设置为Embedded Resource。您可以点击Solution Explorer中的文件并点击 F4 来检查。
  2. 您使用的是错误的完全限定路径。
  3. 我怀疑它是#1。

答案 1 :(得分:0)

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

  • 在您的项目中创建一个新文件夹(可能称为查询
  • 右键单击此文件夹,然后选择添加 - 新项目
  • 在对话框中,只需选择Textfile并为其指定此查询将执行的操作
    • 确保将文件扩展名从.txt替换为.sql
  • 只需将您的陈述直接放入此档案
  • 即可
  • 在资源编辑器中将此文件添加为资源(通常位于属性文件夹下的项目中,或者也可以通过添加 - 新项目 - 资源文件创建)
  • 现在,只需使用Properties.Resources.MySqlStatement
  • 即可在代码中访问此sql语句