2010-03-16 7 views
0

Вот соответствующая часть моего кода:Исключение. Ошибка популяции?

adapter.Fill(table); 

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

У меня есть исключение, это время брошенную adapter.Fill(), и когда я ставлю точку останова на первой строке в обработчике исключения, Exception.Data свойство уже содержит ключ, который уникален для моего приложения.

Дело в том, что это происходит не каждый раз, но только тогда, когда это исключение выбрасывается в течение ~ 2 секунд после его последнего броска.

Объясните, что !!

+0

Нужна дополнительная информация и, возможно, исключение. Кроме того, было бы очень полезно получить дополнительную информацию о backgroupd. – AxelEckenberger

+0

@ Obalix - особое исключение SqlException - номер # 4060 (сбой входа в систему). – Chris

+0

@ Russell-chill out – Chris

ответ

0

Из приведенной вами ошибки я предполагаю, что используемая вами информация о подключении SQL неверна или срок действия пароля истек. Проверьте соединение и проверьте его вне среды.

Если вы используете интегрированную защиту, возможно, пользователь не добавлен в систему безопасности SQL Server, или у пользователя нет доступа к базе данных. В SQl Server безопасность - это двухэтапный процесс, сначала добавьте пользователя на SQL Server как действительный логин, а затем предоставите пользователю доступ к базе данных.

0

На этот page есть комментарий, который звучит так, как будто он может относиться к тому, что вы видите.

Пользователь (TWheelhouse) сказал:

Он появляется на поверхности, что каким-то образом определенные рамки .NET функции пытаются экземпляров повторное использование исключения, вызывая флаги добавляются к «Data» сбора, по всей видимости, была установлены , когда они на самом деле просто висят вокруг от предыдущего времени, когда исключения брошенного и флага добавил ...

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); 
    } 
} 

вызова Foo() несколько раз с строкой соединения, которое непросроченное в формате , но с возможно, значением плохо UID. В первый раз, когда вы вызываете FOO, I получите «Хорошо». сообщение, когда строка подключения приводит к ошибке Объект соединения для выброса SqlException, но каждый раз после я получаю сообщение «BAD!». сообщение (для , в то время как, в конце концов, я получу сообщение «Fine» снова, один раз, затем больше «BAD!»сообщений).

Если каждый раз, когда я пытаюсь создать SqlConnection с плохим соединением строка действительно приводит к совершенно уникальные экземпляры SqlException быть выброшен, я получаю сообщение «Файн» каждый раз!

Я не реплицировал эту проблему самостоятельно и не пытался выполнить код выше, но, похоже, он может быть связан с вашей сообщенной проблемой.

Смежные вопросы