以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用SQL的ExecuteReader查询出的结果无法保存问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130921)

--  作者:affixed
--  发布时间:2019/2/11 21:23:00
--  用SQL的ExecuteReader查询出的结果无法保存问题
以下代码中的dt绑定到窗口中的副本表Table1.当Table1的内容修改后,按钮1无法实现保存编辑结果的目的,还请赐教.
不知道问题出在哪里了.
SQL语句中的F rom是特地多出个空格的,否则论坛上无法正常发帖。实际代码中没有此空格。

谢谢!

Dim cmd As new SQLCommand
Dim dt As DataTable 
cmd.CommandText = "Select [_Identify],折扣 F rom {订单} Where 数量 >= 500"
cmd.C
dt = cmd.ExecuteReader(True) \'记得将参数设置为True
Tables("窗口1_Table1").DataSource = dt
Tables("窗口1_Table1").DataTable.AllowEdit = True

按钮1的代码:
Tables("窗口1_Table1").DataTable.Save()

--  作者:affixed
--  发布时间:2019/2/11 21:26:00
--  
还有就是用sql的INNER JOIN来select出的结果如何进行保存。谢谢!
--  作者:有点蓝
--  发布时间:2019/2/11 21:37:00
--  
用fill吧,如:
Tables("窗口1_Table1").Fill("Select [_Identify],折扣 F rom {订单} Where 数量 >= 500","数据源名称",False)
Tables("窗口1_Table1").AllowEdit = True

这种情况DataSource设置后,窗口表会变成副本,由于没有对应的主表,是无法保存的

--  作者:affixed
--  发布时间:2019/2/11 21:52:00
--  
蓝老师,还有就是为什么用了inner join后就提示“对于多个基表不支持动态 SQL 生成。”
如何解决此问题。

谢谢!

--  作者:affixed
--  发布时间:2019/2/11 21:54:00
--  
fill中改为True就可以执行,False就不行,会提示错误“对于多个基表不支持动态 SQL 生成。”
--  作者:有点蓝
--  发布时间:2019/2/11 21:56:00
--  
inner join的结果是无法保存的,只能用作查询表。