mysql - 使用 vb.net 和 mysql(在线)执行命令时遇到致命错误
问题描述
我有一个用 vb.net 和 mysql 构建的桌面应用程序,它运行良好,但昨天我在执行选择命令时遇到了问题:
dim xSql As String = "SELECT
p.ID,
p.TheName0,
(SELECT IFNULL(SUM(att.S_FinalAmount),0) From tbl_groups_classes_att att
INNER JOIN tbl_students st
ON st.ID = att.StudentID
INNER JOIN tbl_groups_classes cls
ON cls.ID = att.ClassID
WHERE st.ParentID = p.ID
and cls.TheDate BETWEEN @Date1 and @Date2
and att.TheStatus <> 'غائب'
) as CurrMost,
(SELECT IFNULL(SUM(att.S_FinalAmount),0) From tbl_groups_classes_att att
INNER JOIN tbl_students st
ON st.ID = att.StudentID
INNER JOIN tbl_groups_classes cls
ON cls.ID = att.ClassID
WHERE st.ParentID = p.ID and cls.TheDate< @Date1 and att.TheStatus <> 'غائب'
) as PrevMost,
(SELECT IFNULL(SUM(pay.TheAmount),0) From tbl_parents_payments pay Where p.ID = pay.ParentID
AND pay.TheDate BETWEEN @Date1 and @Date2
) as CurrMadf,
(SELECT IFNULL(SUM(pay.TheAmount),0) From tbl_parents_payments pay Where p.ID = pay.ParentID
AND pay.TheDate < @Date1
) as PrevMadf,
(SELECT CurrMost + PrevMost) as AllMost,
(SELECT CurrMadf + PrevMadf) as AllMadf,
(SELECT AllMost - AllMadf) AS FinalTotal
from tbl_parents p"
xDS = New Ds_Edsa
Dim xCMD4 As New MySqlCommand(xSql, Conn)
xCMD4.Parameters.Add("@Date1", MySqlDbType.Date).Value = CDate(xxFrom)
xCMD4.Parameters.Add("@Date2", MySqlDbType.Date).Value = CDate(xxTo)
xDadp = New MySqlDataAdapter(xCMD4)
xDadp.Fill(xDS.Tables("AllPar"))
问题仅在在线 mysql 托管中,但是当我在 localhost (mysql) 上运行命令时,它正在工作!
在一切都很好之前,所以这是一个新问题
我得到的错误是(在命令执行期间遇到致命错误)
解决方案
我认为您的 SQL 非常复杂,因此您应该知道正在处理的记录数,并且我认为您应该将命令分开以将每个部分放在一个命令中,然后将它们合并到数据集中的一个数据表中。
推荐阅读
- javascript - 简单的对象数组排序无法正常工作
- c# - 想要在 asp.net 中应用 javascript 函数时出错
- geoserver - Postgis 数据库中的 DTED 数据使用 geoserver 和 WCS 提供服务
- java - 名为“java.nio.channels.OverlappingFileLockException”的错误
- c# - EntityFrameworkCore 添加或更新
- r - 拟合泊松分布和 MLE
- ios - 如何在 Siri 的 Intents 参数中使用 Supports For Multiple Value
- class - Selenium,Web Scraping,无法访问类
- python - 如何从 Google 服务帐户密钥文件中获取访问令牌?
- flutter - 处理颤振时禁用按钮