好久没写过winform程序了,用devexpress写了个小工具,连一个本地的数据库,感觉不会出什么异常,连接时就没加捕获,调通之后就没管,因为特殊需求,需要把程序放到腾讯云上运行,结果一运行就报错,提示
CLR20r3 错误
没有其他任何错误信息,去网上搜来搜去不行,但是本地或者其它云上连接腾讯云都可以正常运行,本来还想着是WindowsServer2012的问题,又装了几次.netFrameWork,无法解决,最后无奈抱着死马当活马医的态度,加了一个
try catch ,居然捕获到了,说是无法连接数据库,去app.config里把连接地址换成127.0.0.1 不使用公网ip.可以了,我本地,其他服务器都可以连接,难道腾讯云内部不认自己的公网IP,试了试果然腾讯云不能通过公网IP访问SqlServer自己,比较奇怪了。
另外发现一个知识点,sqlserver的主键也是不区分大小写的
比如 userid z001,Z001会被判定为重复主键。
教训:写再简单的程序,一定要注意使用try catch.另外看异常应该先查sql问题了
try catch简单写法,懒点,可少写点代码。
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionEventHandler;
private void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e)
{
try
{
MessageBox.Show(e.ExceptionObject.ToString());
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}