【发布时间】:2021-05-20 07:27:48
【问题描述】:
到目前为止,我正在使用此代码。 问题是它在我的文本框上加载时加载速度太慢,还有其他方法吗?我只是在寻找建议或想法。 数据将显示在文本框 procqty.text 上,但加载时间为 10 到 12 秒。
任何想法都会有所帮助。
谢谢。
Function qtyCheck()
query = "SELECT SUM(prdInput) AS prdInput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess1.Text & "';"
retrieveSingleResult(query)
proc1QTYIn.Text = dt.Rows(0)("prdInput").ToString()
query = "SELECT SUM(prdOutput) AS prdOutput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess1.Text & "';"
retrieveSingleResult(query)
proc1QTYOut.Text = dt.Rows(0)("prdOutput").ToString()
'/
query = "SELECT SUM(prdInput) AS prdInput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess2.Text & "';"
retrieveSingleResult(query)
proc2QTYIn.Text = dt.Rows(0)("prdInput").ToString()
query = "SELECT SUM(prdOutput) AS prdOutput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess2.Text & "';"
retrieveSingleResult(query)
proc2QTYOut.Text = dt.Rows(0)("prdOutput").ToString()
'/
query = "SELECT SUM(prdInput) AS prdInput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess3.Text & "';"
retrieveSingleResult(query)
proc3QTYIn.Text = dt.Rows(0)("prdInput").ToString()
query = "SELECT SUM(prdOutput) AS prdOutput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess3.Text & "';"
retrieveSingleResult(query)
proc3QTYOut.Text = dt.Rows(0)("prdOutput").ToString()
'/
query = "SELECT SUM(prdInput) AS prdInput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess4.Text & "';"
retrieveSingleResult(query)
proc4QTYIn.Text = dt.Rows(0)("prdInput").ToString()
query = "SELECT SUM(prdOutput) AS prdOutput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess4.Text & "';"
retrieveSingleResult(query)
proc4QTYOut.Text = dt.Rows(0)("prdOutput").ToString()
'/
query = "SELECT SUM(prdInput) AS prdInput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess5.Text & "';"
retrieveSingleResult(query)
proc5QTYIn.Text = dt.Rows(0)("prdInput").ToString()
query = "SELECT SUM(prdOutput) AS prdOutput FROM ProdOutput WHERE HELPER ='" & txtLot.Text & "-" & txtPartNumber.Text & "-" & txtProcess5.Text & "';"
retrieveSingleResult(query)
proc5QTYOut.Text = dt.Rows(0)("prdOutput").ToString()
End Function
【问题讨论】:
-
您构建查询的方式一开始就不好。您应该研究如何使用参数构建查询。它将帮助您避免各种问题,最重要的是 SQL 注入攻击,这可能会删除您的整个数据库。
-
至于问题,你很可能在每个查询上打开和关闭连接,这很糟糕。如果您有多个任务要连续对数据库执行,那么您应该打开一次连接,执行所有任务然后关闭它。如果你要抽象你的数据访问代码,那么你需要允许这种事情。
-
另外,根据您的数据库,您可能可以使用单个查询一次性获取所有数据,因此只需访问数据库即可。
-
数据库中HELPER字段的数据类型是什么?看起来您正在尝试减去字符串,或者 HELPER 字段是否包含带有破折号的不同字符串?