.net 例外。数据填充错误?

.net 例外。数据填充错误?,.net,exception,.net,Exception,以下是我代码的相关部分: adapter.Fill(table); return; } catch(Exception ex) { SqlException sqlEx = ex as SqlException; 我有一个由adapter.Fill()引发的异常,当我在异常处理程序的第一行上放置断点时,exception.Data属性已经包含一个对我的应用程序唯一的键 问题是它不是每次都发生,但只有在上次抛出异常后2秒内抛出该异常时才会发生 解释一下 根据您引用的错误

以下是我代码的相关部分:

    adapter.Fill(table);

    return;
}
catch(Exception ex)
{
    SqlException sqlEx = ex as SqlException;
我有一个由adapter.Fill()引发的异常,当我在异常处理程序的第一行上放置断点时,exception.Data属性已经包含一个对我的应用程序唯一的键

问题是它不是每次都发生,但只有在上次抛出异常后2秒内抛出该异常时才会发生


解释一下

根据您引用的错误,我假设您使用的SQL连接信息不正确,或者密码已过期。检查您的连接并在您的环境之外进行测试


如果您使用的是集成安全性,则可能是该用户未添加到SQL Server安全性,或者该用户无权访问数据库。在SQl Server中,安全性是一个两步过程,首先将用户作为有效登录添加到SQl Server,然后授予用户访问数据库的权限。

对此有一条评论,听起来可能与您看到的内容有关

用户(TWheelhouse)说:

表面上看来,不知何故 某些.NET framework功能试图 重复使用异常的实例, 导致将标志添加到“数据”中 集合似乎已设置 当他们真的只是被吊死的时候 从上一次 异常被抛出,并且标志 添加

使用 在中可用的连接字符串 格式,但可能具有错误的UID 价值你第一次打电话给富,我 当坏消息发生时,收到“好”消息 连接字符串导致 要抛出的连接对象 SqlException,但每次之后 这一点,我得到了“坏”的信息(一个星期) 而最终我会得到“罚款” 信息再一次,一次,然后更多的“坏!” 信息)

如果每次我尝试创建一个 连接错误的SqlConnection 字符串确实导致了 完全独特的 要抛出SqlException,我将获得 “好”的信息,每一次


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

需要更多信息,可能还有引发的异常。另外,如果您能提供更多的backgroupd信息,我们将不胜感激。@Obalix-特定的SqlException是数字#4060(登录失败)。请首先描述您称之为处理程序第一行的内容,以及为什么它不应该具有该Id。
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);
  }
}