GridView不报告异常
问题描述:
如果我将GridView绑定到SqlDataSource并且将AutoGenerateEditButton设置为true,并且如果我然后尝试更新一个字段(该字段是数据库中的主键),那么数据库应该返回一个错误并且因此应抛出SqlException?GridView不报告异常
那么为什么不报告异常?相反,所有Gridview都会将该行中的所有字段都设置为原始值。
当我执行相同的更新语句,用下面的代码,我无法更新标识列“雇员”例外,所以我假设SQL服务器做了报告同样的错误时的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();
BTW - 我试图设置的DataKeyNames =“EmployeeI d”,但是异常仍然没有提出
感谢名单
编辑:
你好,
对不起,不回答越快,但我没有注意到我得到了答复。
无论如何,由于某种原因,它现在正在工作,这意味着GridView会报告一个异常。因此,我一定在代码中犯了一些错误,但由于我的代码不断重写,我不知道该错误在哪里。对不起,浪费你的时间,谢谢你帮我出
答
纵观错误和你的代码。它似乎是一个SQL数据库错误,而不是GridView的问题。
SQL不允许更新IDENTITY列,因为它们是由数据库引擎生成的。在这种情况下,“EmployeeId”就是这样一个领域。
答
我有同样的问题:我在对象数据源的选择处理程序中发现异常,但忘记将异常设置为处理:e.ExceptionHandled = true。页面上呈现的页面没有我的错误消息,就像没有错误发生一样。随着e.ExceptionHandled = true,一切都很好。
我来这里说这个.. + 1 – Meff 2009-04-16 20:36:05