110,568
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add connectionString="strCon" name="Data Source=SQL2008R2;Initial Catalog=HotelWebDB;User ID=sa;Password=mima"/>
</connectionStrings>
</configuration>
private static string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["strCon"].ToString();
static SQLHelper()
{
....
}
代码。
vs调试器无法调试(以及根本无法正确给你报告)“类型初始值设定”代码中的异常位置信息。因此你可以尽量避免“类型初始值设定”。例如写:private static string _ConnectionString = null;
private static string ConnectionString
{
get{
if( _ConnectionString==null)
_ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["strCon"];
return _ConnectionString;
}
}
这样,vs就能给你详尽的地报告异常错误位置和堆栈,并且支持调试。因为这个赋值语句不再是“类型初始值设定”中运行的代码了!
当然你的这个赋值语句看起来不像是有问题,有问题的地方你可能根本没贴出来。
根据这个原理,逐一地自己修改其它“类型初始值设定项”代码并且立刻调试运行,直到运行时vs调试器能够准确地给你显示异常堆栈位置为止。
lz的代码 System.Configuration.ConfigurationManager.ConnectionStrings["strCon"] 根本用不到 providerName。
vs的调试期有点悲催,对于“类型初始设定项异常”根本没有更详细的异常信息抛出,而且也无法进入原代码去调试。