gpt4 book ai didi

c# - 如果 Sql Server 返回错误,则应抛出 SqlException。但它不是

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:20 26 4
gpt4 key购买 nike


如果我将 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# 将获取该异常。你不能在这里混搭,它不是衣橱。

关于c# - 如果 Sql Server 返回错误,则应抛出 SqlException。但它不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/731974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com