C# SQL执行有时有效

C# SQL执行有时有效,c#,asp.net,sql-server,asp.net-mvc-4,C#,Asp.net,Sql Server,Asp.net Mvc 4,我已经阅读了很多关于这个问题的答案,并且仍然在寻找解决方案。C ASP MVC4 Navicat SQL Server 2008是环境,应用程序是扫描仪标签制造商。以下语句在C中被称为参数化查询(稍微修改),是的,它应该在upc_code=itemnum的位置: INSERT INTO MyTable1(ITEM, UPC, BRAND, DESC, SIZE, PRICE, DIST, SALEPRICE, LOC, LABEL, NEWPRICE, TAX, MARKUP, ALLDISC,

我已经阅读了很多关于这个问题的答案,并且仍然在寻找解决方案。C ASP MVC4 Navicat SQL Server 2008是环境,应用程序是扫描仪标签制造商。以下语句在C中被称为参数化查询(稍微修改),是的,它应该在upc_code=itemnum的位置:

INSERT INTO MyTable1(ITEM, UPC, BRAND, DESC, SIZE, PRICE, DIST, SALEPRICE, LOC, LABEL, NEWPRICE, TAX, MARKUP, ALLDISC, DIST2, RECNUMBER, userID, HasBeenDownloaded) 

OUTPUT Inserted.BRAND, Inserted.SIZE, Inserted.PRICE 

SELECT TOP 1 I.ITEM, I.UPC, I.BRAND, I.DESC, I.SIZE, I.PRICE, V.DIST, I.SALEPRICE, @LOCATION, I.LABEL, I.NEWPRICE, I.TAX, I.MARKUP, I.ALLDISC, V.DIST2, @RECNUM, @userID, @HasBeenDownloaded 

FROM MyTable2 I, MyTable3 V 

WHERE I.UPC_CODE = @ITEMNUM AND V.ITEM_NUM = I.ITEM_NUM 
每个用户大约扫描18次,每2秒扫描1次,然后服务器无限期挂起。即使我反复扫描同一项,表明它不是查询中的值,服务器也会挂起大约18个查询

C代码确实使用读取器而不是ExecuteOnQuery,但这只是因为我需要将输出注入到视图中:

using (IDataReader reader = theCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        retVal.Add("Brand", reader["BRAND"    ].ToString());
                        retVal.Add("Size",  reader["SIZE"     ].ToString());
                        retVal.Add("Price", reader["PRICE"].ToString());
                        break;
                    }
                }

请记住,我没有SQLMS,我正在使用Navicat,是否有DBA可以指导我调试该问题?或者,是否有程序员有想法或更好的方法来检索SQL输出值?

在您发布的代码中没有什么突出的地方。机器上的内存使用情况如何?你试过在调试器中运行它以查看它挂起的位置吗?你好,D Stanley,我想它可能是内存,所以我们又添加了2GB相同的结果。是的,它挂在读卡器上,也就是说,它是SQL Server响应,而不是VS2012。我们在GoDaddy上主持,但即使他们也没那么糟糕。这是一个半复杂的SQL插入,但我认为没有任何东西可以让系统与一个用户挂起。我想知道它是否可能是损坏的数据或模式或其他东西,但我没有数据库专业来诊断好吧,好吧,它神奇地开始工作了,所以我猜它是GoDaddy…谢谢大家