Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# update语句有问题_C#_Asp.net_Sql - Fatal编程技术网

C# update语句有问题

C# update语句有问题,c#,asp.net,sql,C#,Asp.net,Sql,我希望语句在每次进入特定页面时将数据库更新1。但它似乎会更新3:( 在代码中设置断点并在visual studio调试器中运行 我打赌由于回发和事件的组合,这会被调用3次 或者,您可以使用SQL事件探查器查看是否发生了多个更新。sparks建议非常好。学习了解调试器。通过断点和即时窗口,您可以做一些真正美妙的事情,这将帮助您成为一个更高效的调试器 在站点注释中。您如何使用Stringbuilder不是很有效。通常来说,除非您在循环中进行操作,否则请避免使用Stringbuilder,因为创建它会

我希望语句在每次进入特定页面时将数据库更新1。但它似乎会更新3:(


在代码中设置断点并在visual studio调试器中运行

我打赌由于回发和事件的组合,这会被调用3次


或者,您可以使用SQL事件探查器查看是否发生了多个更新。

sparks建议非常好。学习了解调试器。通过断点和即时窗口,您可以做一些真正美妙的事情,这将帮助您成为一个更高效的调试器

在站点注释中。您如何使用Stringbuilder不是很有效。通常来说,除非您在循环中进行操作,否则请避免使用Stringbuilder,因为创建它会有一些开销

var str = "UPDATE  dbo.Threads" 
          + " SET Views=(Views+1)"
          + " WHERE ThreadsID=@ThreadID"; 

这种类型的代码无论如何都会被编译器优化为一个字符串分配。我创建了一个小测试,它显示在1000000次迭代中,stringbuilder需要467毫秒,而字符串连接需要8毫秒。这不会杀死你的应用程序,但最好知道。

这是ASP.NET Web表单吗?在页面生命周期的哪一部分你调用这个方法吗?这个SQL代码本质上是无关的(看起来不错)。请使用调用此方法的ASP.NET代码编辑您的问题;这很可能是问题所在。可能是条件满足3行,因此更新3行在页面加载中..您输入页面,它在页面中..加载..它传递页面id..哦..那么我如何更改查询..treadID是线程…也可以是50..为什么不在视图中添加1?您的代码似乎没有问题。检查您调用UpdateThreadView的次数和位置抱歉,我很愚蠢,您是对的..我将调用方法放在了里面!ispostback..谢谢大家
var str = "UPDATE  dbo.Threads" 
          + " SET Views=(Views+1)"
          + " WHERE ThreadsID=@ThreadID";