Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StreamReader空引用异常_C#_Sql_Nullreferenceexception_Streamreader - Fatal编程技术网

C# StreamReader空引用异常

C# StreamReader空引用异常,c#,sql,nullreferenceexception,streamreader,C#,Sql,Nullreferenceexception,Streamreader,我试图从资源文件夹中的.SQL文件中读取SQL语句, 我现在有2个.SQL文件,它正确地读取一个,而另一个返回一个null referenceexception 以下是我对sql文件的调用: string sqlFailRecordNoMatch = EmbeddedResource.GetString("Resources.SQLScripts.RecordNumberFailQuery.sql"); 下面是GetString方法: 在一个与另一个上会出现NullReferenceExce

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

以下是我对sql文件的调用:

 string sqlFailRecordNoMatch = EmbeddedResource.GetString("Resources.SQLScripts.RecordNumberFailQuery.sql");
下面是GetString方法:


在一个与另一个上会出现NullReferenceException的唯一原因是:

失败的资源未设置为嵌入式资源。您可以通过单击解决方案资源管理器中的文件并点击F4来检查这一点。 您使用了错误的完全限定路径。
我猜是1。

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

在项目中创建一个新文件夹,可能称为“查询” 右键单击此文件夹并选择“添加-新建项目” 在对话框中,只需选择Textfile并为其提供有关此查询将执行的操作的名称 确保将文件扩展名从.txt替换为.sql 把你的陈述放在这个文件里 在资源编辑器中,将此文件添加为通常位于项目“属性”文件夹下的资源,或者也可以通过add-New Item-Resources file创建它 现在,只需使用Properties.Resources.MySqlStatement,就可以在代码中访问此sql语句
在第二个.SQL文件中,您是否在调试中进行了检查并检查了数据的值?我的猜测是,出于某种原因,它是空的。如果读取正确,则读取它的代码没有问题,但更可能找到文件。您是否显示了不同的GetString重载?上面的一个将程序集作为第一个参数,但是您只使用字符串参数调用GetString。很可能,您的name参数中有输入错误。谢谢!这是第一次。这么简单的一个错误,我要花很长时间才能发现。@user2056726,不用担心,朋友。我只知道这是因为我自己做的!
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;
}