SQL执行有时会起作用

时间:2015-10-20 19:53:39

标签: 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, 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#代码确实使用了reader而不是executeNonQuery,但这只是因为我需要将输出注入到视图中:

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输出值?

0 个答案:

没有答案