streamReader ArgumentNullException

时间:2011-05-05 18:26:44

标签: c# streamreader argumentnullexception

嘿那里,
我有一个使用sql express本地数据库的程序。我希望能够使用该程序更新该DB以运行必要的脚本。已将文本文件作为嵌入资源添加到项目(VS2010),该文件包含文本。它虽然无法打开文件。我得到一个“ArgumentNullException未处理”“值不能为null。参数名称:流”这里是代码......

Assembly assem;
StreamReader textReader;
assem = Assembly.GetExecutingAssembly();
//fails at this line below.
textReader = new StreamReader(assem.GetManifestResourceStream("projectName.sqlUpdates.txt"));

tReader.Peek() != -1)
  script = textReader.ReadToEnd();

2 个答案:

答案 0 :(得分:2)

'projectName'是文件sqlUpdates.txt所在的完整程序集和命名空间吗?上面的代码是在'projectName'程序集中运行的,还是在其他地方运行?

如果sqlUpdates.txt文件位于projectName程序集下面的命名空间中,则需要在调用GetManifiestResourceStream时指定,即:

Stream resource = assem.GetManifestResourceStream("projectName.nameSpace.sqlUpdates.txt")

答案 1 :(得分:0)

这基本上意味着

assem.GetManifestResourceStream("projectName.sqlUpdates.txt")

返回null ...如果无法找到该资源,它将执行此操作。检查它实际上是否在装配中,例如使用Reflector或assem.GetManifestResourceNames()