如果我将 GridView 绑定(bind)到 SqlDataSource 并将 AutoGenerateEditButton 设置为 true,然后我尝试更新一个字段(该字段是数据库中的主键),那么数据库应该返回一个错误,因此应该抛出 SqlException?!那为什么页面不报异常呢?相反,Gridview 所做的只是将该行中的所有字段设置回其原始值。
谢谢
编辑:
你好,
当我使用以下代码执行相同的更新语句时,我得到了无法更新身份列'EmployeeID'异常,所以我假设当 GridView 尝试更新时 Sql Server 确实报告了相同的错误,但出于某种原因没有引发异常:
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();
第二次编辑:
Is your DataKeyNames property set correctly?
我尝试设置 DataKeyNames="EmployeeId",但仍未引发异常
如果您的 SQL 查询返回结果,则 C# 将获得该结果。如果您的 SQL 查询抛出异常,则 C# 将获取该异常。你不能在这里混搭,它不是衣橱。
我是一名优秀的程序员,十分优秀!