StreamReader空引用异常
本文关键字:异常 引用 StreamReader | 更新日期: 2023-09-27 18:17:07
我试图从资源文件夹中的。SQL文件中读取SQL语句,我现在有两个。sql文件,其中一个读取正确,另一个返回NullRefrenceException
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;
}
你在其中一个上获得NullReferenceException
的唯一原因是:
- 失败的那个没有被设置为
Embedded Resource
。你可以通过点击Solution Explorer
中的文件并点击F4来检查。 - 您正在使用错误的完全限定路径。
我猜是#1。
如果你直接使用Visual Studio中的资源编辑器,那就容易多了:
- 在你的项目中创建一个新文件夹(也许叫做Queries)
- 右键单击此文件夹并选择添加-新建项目
- 在对话框中选择
Textfile
,并给它一个关于这个查询将做什么的名称- 确保将文件扩展名从
.txt
替换为.sql
- 确保将文件扩展名从
- 把你的语句直接放到这个文件
- 在资源编辑器中将此文件添加为资源(通常位于项目的属性文件夹下,或者简单地通过添加-新建项目-资源文件创建它) 现在你可以通过使用
Properties.Resources.MySqlStatement
在你的代码中访问这个sql语句