Exception.Data人口错误?

时间:2010-03-16 20:19:33

标签: .net exception

这是我的代码的相关部分:

    adapter.Fill(table);

    return;
}
catch(Exception ex)
{
    SqlException sqlEx = ex as SqlException;

我有一个异常,它被adapter.Fill()抛出,当我在异常处理程序的第一行放置一个断点时,Exception.Data属性已经包含了一个对我的应用程序来说唯一的键。

事情是它不会每次都发生,但只有在最后一次抛出的约2秒内抛出此异常时才会发生。

解释!!

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,我得到了   每次都有“好”的消息!

我自己没有复制此问题,也没有尝试过运行上面的代码,但似乎它可能与您报告的问题有关。