c# - 使用 texbox 控件插入数字时 ASP.NET 挂起
问题描述
我正在使用带有五个文本框的 asp.net 4.5、C# 和 SQL Express。传递的值是 0 到 99 之间的数字。使用 ExecuteNonQuery 插入数字时,系统会挂起 30 秒或更长时间。
在 VS 调试期间,我验证了数据实际上已写入数据库,但是 ExecuteNonQuery 从未完成。
我尝试了几种方法,包括具有相同结果的转换(TryParse 和 Convert )。我还创建了一个只有五个文本框的简单测试页面,但显示了同样的问题。此问题因硬编码和存储过程而失败。使用 SQLDatasource 控件有效,但更喜欢使用 C# 进行编码。这些字段仅用于数字,将在报告期间进行计算。注意:我假设值需要从字符串转换为 INT。
表结构:
[StatID] [int] IDENTITY(1,1) NOT NULL,
[Made2PT] [int] NULL, [Missed2PT] [int] NULL,
存储过程:
@Made2Pt Int, @Missed2pt Int
AS
BEGIN
INSERT INTO tblStatsV2(Made2Pt,Missed2pt)
VALUES (@Made2Pt,@Missed2pt)
示例后面的 C# 代码,带有两个文本框的部分测试页面:
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@Made2Pt", txtMade2PT.Text == "" ? 0 :
Convert.ToInt32(txtMade2PT.Text));
sqlCmd.Parameters.AddWithValue("@Missed2pt",txtMade2PT.Text == "" ? 0 :
Convert.ToInt32(txtMissed2PT.Text));`
来自其他页面的部分示例代码:
cmd.CommandType = CommandType.StoredProcedure;
if (int.TryParse(txt2ptMade.Text, out made2PT))
{
cmd.Parameters.Add("@Made2Pt", SqlDbType.Int).Value = made2PT;
}
我希望该条目能在不到一秒的时间内返回,因为我的其他页面有快速响应。
解决方案
我没有做的是在不同的浏览器(Edge、Chrome、Opera ...)上测试我的问题。我确实通过添加局部变量来修复存储过程,但这并没有消除问题。我发现这个问题只在 Microsoft Edge 上失败。在扫描 Microsoft 的支持后,一个修复方法是删除一个 KB 补丁。每个浏览器处理数据的方式不同,因此您可以预期在性能问题上会产生不同的结果。希望这可以帮助..
推荐阅读
- java - 如何使用 Electron 通过 JDBC 连接到 MySQL 数据库
- google-docs - 嵌入的内容不显示;GoogleDocs 查看器返回 204
- python - 你不能将整数附加到python中的列表吗?
- python - xlwings 将值设置为带等号 (=) 而非公式的字符串
- c++ - 嵌套堆分配如何在 C++ 中工作?
- python - 在 Dynamo DB 中处理 nan 值 - AWS
- vba - 在文本框中输入文本时启用按钮
- r - 如何修复错误“找不到函数“setnafill””
- visual-studio-code - 无法使用 VSCode 在远程服务器中打开现有的 jupyter 笔记本
- python - Shady 中的自定义传递函数(或 LUT)