Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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# 对象引用未设置为对象的实例_C#_.net_Sql Server - Fatal编程技术网

C# 对象引用未设置为对象的实例

C# 对象引用未设置为对象的实例,c#,.net,sql-server,C#,.net,Sql Server,我在int end=line.IndexOfst2处出错;行如果在上获得NullReferenceException 然后该行必须为空。您应该找出原因-我猜文件中的行数没有您预期的那么多。TextReader.ReadLine在数据不足时返回null 此外: 这个方法很大,而且很难阅读。试着把它重构成更小的块。 对StreamReader和SqlConnection等资源使用using语句 使用LINQ到XML可能会使XML部分更简单 与其使用objReader.Peek,不如检查行是否为nul

我在int end=line.IndexOfst2处出错;行

如果在上获得NullReferenceException

然后该行必须为空。您应该找出原因-我猜文件中的行数没有您预期的那么多。TextReader.ReadLine在数据不足时返回null

此外:

这个方法很大,而且很难阅读。试着把它重构成更小的块。 对StreamReader和SqlConnection等资源使用using语句 使用LINQ到XML可能会使XML部分更简单 与其使用objReader.Peek,不如检查行是否为null以检测输入的结束 相对高级如果这是在客户端应用程序中,那么在UI线程中完成所有这些工作将锁定UI。您应该在不同的线程中执行长时间运行的任务。
首先,尽量将格式设置得更好一些,因为代码是不可读的

问题是任何对象都没有初始化。

可能是objReader.ReadLine;返回null,因此

int end = line.IndexOf(st2);
不按设想工作

检查行是否为空:


我想说,它可能没有像OP预期的那样工作,但它确实像预期的那样工作-当没有更多的行可以读取时,它返回null是完全可以的。更不用说硬编码的连接字符串、硬编码的文件路径和内联sql了。@Richard:Yes,我觉得过一会儿停下来是值得的:这真的需要一个sql server标记吗?因为问题是关于c代码的,除了代码中有sql语句之外,它与sql无关?
int end = line.IndexOf(st2);
line = objReader.ReadLine();
int end;
if(line != null)
   end= line.IndexOf(st2);