Если Sql Server возвращает ошибку, то должно быть выброшено SqlException. Но это не - PullRequest
1 голос
/ 09 апреля 2009


Если я связываю GridView с SqlDataSource и также устанавливаю для AutoGenerateEditButton значение true, а если я затем пытаюсь обновить поле (это поле является первичным ключом в базе данных), то база данных должна вернуть ошибку, и, таким образом, должно быть выдано SqlException ?! Так почему страница не сообщает об исключении? Вместо этого все, что делает Gridview, - это возвращает все поля в этой строке к исходным значениям.


1007 * спасибо *


EDIT:

Здравствуйте,


Когда я выполнил тот же оператор обновления со следующим кодом, я получил Невозможно обновить исключение столбца идентификатора «EmployeeID» , поэтому я предполагаю, что Sql Server сообщал о той же ошибке, когда GridView пытался обновить, но по какой-то причине исключение не был поднят:

        SqlConnection sc = new SqlConnection();
        sc.ConnectionString = @"Data source=localhost; integrated security=sspi; initial catalog=northwind;";
        SqlCommand sComand = new SqlCommand();

        sComand.Connection = sc;
        sComand.CommandText = "update Employees set EmployeeId=100,FirstName='Suzy',"+ 
                   "LastName='Smile',City='Moon' where EmployeeId=1";
        sc.Open();
        int I = sComand.ExecuteNonQuery();


ВТОРОЕ РЕДАКТИРОВАНИЕ:

Правильно ли установлено свойство DataKeyNames?

Я пытался установить DataKeyNames = "EmployeeId", но исключение по-прежнему не возникало

Ответы [ 4 ]

2 голосов
/ 09 апреля 2009

Исключение будет выдано ТОЛЬКО, если серьезность ОШИБКИ в T-SQL равна 16 или выше AFAIK. Так что не все ошибки одинаковы в SQL Server.

2 голосов
/ 09 апреля 2009

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

2 голосов
/ 09 апреля 2009

Если ваш SQL-запрос возвращает результат, то C # получит этот результат. Если ваш запрос SQL выдает исключение, то C # получит это исключение. Вы не можете смешивать и сочетать здесь, это не гардероб.

1 голос
/ 09 апреля 2009

Правильно ли установлено свойство DataKeyNames ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...