【发布时间】:2023-03-19 09:37:01
【问题描述】:
如果我将 GridView 绑定到 SqlDataSource 并将 AutoGenerateEditButton 设置为 true,然后我尝试更新一个字段(该字段是数据库中的主键),那么数据库应该返回一个错误,因此应该抛出 SqlException?! 那么为什么page不报异常呢?相反,Gridview 所做的只是将该行中的所有字段设置回其原始值。
感谢
编辑:
你好,
当我使用以下代码执行相同的更新语句时,我得到无法更新身份列'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",但仍然没有引发异常
【问题讨论】:
-
非常好的/有用的问题,+1 的问题。
标签: c# asp.net gridview ado.net