C# 如何解决System.Data.SqlClient.TdsParser.ThroweException和Warning()异常

C# 如何解决System.Data.SqlClient.TdsParser.ThroweException和Warning()异常,c#,.net,visual-studio,exception,ado,C#,.net,Visual Studio,Exception,Ado,我有一个C#应用程序,它读取SQL Server数据库。 有时我会出错,应用程序会崩溃 如果我查看EventViewer,我会发现: Application : XXXXXXXXX_CLI.EXE Version du Framework : v4.0.30319 Description : le processus a été arrêté en raison d'une exception non gérée. Informations sur l'exception : System.Co

我有一个C#应用程序,它读取SQL Server数据库。 有时我会出错,应用程序会崩溃

如果我查看EventViewer,我会发现:

Application : XXXXXXXXX_CLI.EXE
Version du Framework : v4.0.30319
Description : le processus a été arrêté en raison d'une exception non gérée.
Informations sur l'exception : System.ComponentModel.Win32Exception

Informations sur l'exception : System.Data.SqlClient.SqlException
   à System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
   à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject, Boolean, Boolean)
   à System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.BulkCopySimpleResultSet, System.Data.SqlClient.TdsParserStateObject, Boolean ByRef)
   à System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   à System.Data.SqlClient.SqlDataReader.get_MetaData()
   à System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.RunBehavior, System.String)
   à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean, Int32, System.Threading.Tasks.Task ByRef, Boolean, System.Data.SqlClient.SqlDataReader, Boolean)
   à System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Threading.Tasks.TaskCompletionSource`1<System.Object>, Int32, System.Threading.Tasks.Task ByRef, Boolean)
   à System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)
   à System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)
   à System.Data.SqlClient.SqlCommand.ExecuteReader()
   à XXXXXXXXX_CLI.Program._RG_1(System.String, System.String, System.String, System.Data.DataRow, System.String ByRef, System.String ByRef)
   à XXXXXXXXX_CLI.Program._Fct_01(System.String)
   à XXXXXXXXX_CLI.Program.Main(System.String[])
应用程序:XXXXXXXXX\u CLI.EXE
du框架版本:v4.0.30319
描述:非gérée例外存在的过程。
异常信息:System.ComponentModel.Win32Exception
异常信息:System.Data.SqlClient.SqlException
§System.Data.SqlClient.SqlConnection.OneError(System.Data.SqlClient.SqlException,布尔值,System.Action`1)
§System.Data.SqlClient.TdsParser.ThroweException和Warning(System.Data.SqlClient.TdsParserStateObject,布尔型,布尔型)
§System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior,System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlDataReader,System.Data.SqlClient.BulkCopySimpleResultSet,System.Data.SqlClient.TdsParserStateObject,Boolean ByRef)
áSystem.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
§System.Data.SqlClient.SqlDataReader.get_MetaData()
§System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader,System.Data.SqlClient.RunBehavior,System.String)
§System.Data.SqlClient.SqlCommand.RunExecuteReaderDs(System.Data.CommandBehavior,System.Data.SqlClient.RunBehavior,布尔值,布尔值,Int32,System.Threading.Tasks.Task ByRef,布尔值,System.Data.SqlClient.SqlDataReader,布尔值)
§System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior,System.Data.SqlClient.RunBehavior,布尔值,System.String,System.Threading.Tasks.TaskCompletionSource`1,Int32,System.Threading.Tasks.Task ByRef,布尔值)
§System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior,System.Data.SqlClient.RunBehavior,Boolean,System.String)
§System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior,System.String)
§System.Data.SqlClient.SqlCommand.ExecuteReader()
áXXXXXXXXX_CLI.Program.\u RG_1(System.String,System.String,System.String,System.Data.DataRow,System.String ByRef,System.String ByRef)
áXXXXXXXXX_CLI.Program.\u Fct_01(System.String)
áXXXXXXXXX_CLI.Program.Main(System.String[])
是否存在连接问题?或解析问题(我们可以看到:

System.Data.SqlClient.TdsParser.throweexception和warning()

)

非常感谢


关于这个问题,

有两天的工作时间

在开发环境中,一切都在为我工作,但在测试环境中抛出了这个异常

我在同一个拉请求上同时做了两件事,所以我不太确定哪一件解决了这个问题,但您可以检查/解决这两件事

我首先猜测是什么修复了它,我已经更新到最新版本的System.Data.SqlClient。
其次,我的解决方案中有一个.netstandard2.0项目。我已经删除了它。

几乎可以肯定是网络问题。它肯定会在尝试执行SQL命令时引发错误,可能有很多原因,错误的数据、连接问题。。。您应该添加异常处理代码来定位有问题的一行或多行以及确切的异常错误消息,这将更加说明“由于未处理的异常而终止进程”编辑,我添加新的错误消息您可以发布您的SQL连接字符串(带有敏感的详细信息,如密码编辑)吗?我想知道在打开连接之前对其进行分析时是否有无效内容。@AlexK.,它应该是永久性的,与查询无关,与代码状态无关,与网络状态无关等等。错误。几乎可以肯定你是不对的;-)“我在2020年与System.Data.SqlClient的上一次更新一起与这个问题斗争了一个多星期,所以你是个快乐的家伙,@Victor。”。