这是我的代码的相关部分:
adapter.Fill(table);
return;
}
catch(Exception ex)
{
SqlException sqlEx = ex as SqlException;
我有一个异常,它被adapter.Fill()抛出,当我在异常处理程序的第一行放置一个断点时,Exception.Data属性已经包含了一个对我的应用程序来说唯一的键。
事情是它不会每次都发生,但只有在最后一次抛出的约2秒内抛出此异常时才会发生。
解释!!
答案 0 :(得分:0)
根据您引用的错误,我会假设您使用的SQL连接信息不正确,或者密码已过期。检查您的连接并在您的环境之外进行测试。
如果使用集成安全性,则可能是用户未添加到SQL Server安全性,或者用户无权访问数据库。在SQl Server中,安全性是一个两步过程,首先将用户作为有效登录添加到SQL Server,然后授予用户对数据库的访问权。
答案 1 :(得分:0)
对此page的评论听起来可能与您所看到的有关。
用户(TWheelhouse)说:
表面上看起来不知何故 某些.NET框架功能尝试 重用例外情况, 导致标志添加到'数据' 集合似乎已设置 当他们真的只是挂着 从前一次的时间开始 异常被抛出和国旗 加入...
public static void foo(string connectionString) {
try {
SqlConnection cn = new SqlConnection (connectionString);
cn.Open();
}
catch (SqlException ex) {
if (ex.Data.Contains("MY_TEST_FLAG"))
Debug.WriteLine("BAD! It Shouldn't be there yet!");
else
Debug.WriteLine("Fine.");
ex.Data.Add("MY_TEST_FLAG", true);
}
}
用a调用foo()几次 vaild的连接字符串 格式,但可能是一个糟糕的UID 值。你第一次打电话给FOO,我 得到“好”。消息时坏了 连接字符串导致 连接对象抛出一个 SqlException,但每次都是 那,我得到了“坏”!消息(对于 而且,最终我会得到一个“好” 消息再次,一次,然后更“不好!” 消息)。
如果每次我尝试创建一个 SqlConnection连接错误 字符串真的导致了 完全独特的实例 抛出SqlException,我得到了 每次都有“好”的消息!
我自己没有复制此问题,也没有尝试过运行上面的代码,但似乎它可能与您报告的问题有关。