Foxtable(狐表)用户栏目专家坐堂 → 清空订单明细表


  共有2423人关注过本帖树形打印复制链接

主题:清空订单明细表

帅哥哟,离线,有人找我吗?
ming8604
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
清空订单明细表  发帖心情 Post By:2017/11/27 10:33:00 [只看该作者]

专家,你好。

 

现在有一个问题就是,清空所有订单的明细表,并想重新导入一张excel表。

 

 

制作了一个按钮click事件。

 

 

 

DataTables("采购订单执行").datarows.clear
DataTables("采购订单执行").Save

 

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Excel文件|*.xls;*.xlsx"


If dlg.ShowDialog = DialogResult.OK Then
    For Each file As String In dlg.FileNames
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)

        Dim i As Integer = 5
        Do While (sheet(i,1).Text)<>""
            Dim dr As Row = Tables("采购订单执行").AddNew
            dr("采购组织") = sheet(i,0).Text
            dr("订单编号") = sheet(i,1).Text
            dr("供应商") = sheet(i,3).Text
            dr("采购部门") = sheet(i,5).Text
            dr("订单日期") = sheet(i,6).Text
            dr("行号") = sheet(i,7).Text
            dr("物料编码") = sheet(i,10).Text
            dr("物料名称") = sheet(i,11).Text

            dr("客户") = sheet(i,35).Text
            i = i + 1
        Loop
       
    Next
End If

 

 

发现执行语句读入满,保存更慢。请问有什么其他方法更快读入,保存到该数据库?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/27 10:55:00 [只看该作者]

1、读入速度

 

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Excel文件|*.xls;*.xlsx"


If dlg.ShowDialog = DialogResult.OK Then

SystemReady = false

Tables("采购订单执行").StopRedraw
    For Each file As String In dlg.FileNames
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)

        Dim i As Integer = 5
        Do While (sheet(i,1).Text)<>""
            Dim dr As Row = Tables("采购订单执行").AddNew
            dr("采购组织") = sheet(i,0).Text
            dr("订单编号") = sheet(i,1).Text
            dr("供应商") = sheet(i,3).Text
            dr("采购部门") = sheet(i,5).Text
            dr("订单日期") = sheet(i,6).Text
            dr("行号") = sheet(i,7).Text
            dr("物料编码") = sheet(i,10).Text
            dr("物料名称") = sheet(i,11).Text

            dr("客户") = sheet(i,35).Text
            i = i + 1
        Loop
    Next

Tables("采购订单执行").ResumeRedraw

SystemReady = True
End If

 

2、保存速度

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&skin=0

 


 回到顶部
帅哥哟,离线,有人找我吗?
ming8604
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
  发帖心情 Post By:2017/11/27 17:08:00 [只看该作者]

谢谢,专家。

 

测试更新了"采购组织","主数量","物料编码"这几个字段。

 

 

Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("采购订单执行"),"采购组织","物料编码","主数量",1)

If strlist.count = 0 Then Return  Nothing

Dim sql As String
Dim cmd As New SQLCommand
cmd.C
Dim Count As Integer = 0

For Each s As String In strlist
    cmd.CommandText = s
    Count += cmd.ExecuteNonQuery()
    Output.show(s)
Next

Tables(""采购订单执行"").DataTable.BaseTable.AcceptChanges()   '提交修改
Tables(""采购订单执行"").DataTable.Load             '刷新表
Output.show("影响了" & Count & "行")、

 

 

 

错误代码:cmd.c

 

 

在链接里,下载后,也打不开

数据保存时的Sql语句合成函数.Table

 

 

 



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/27 17:36:00 [只看该作者]

你用的是内部数据源还是access还是sqlserver?

 

你用这个例子测试行不行?

 

下载信息  [文件大小:1.3 MB  下载次数:121]
图片点击可在新窗口打开查看点击浏览该文件:数据保存时的sql语句合成函数 .zip


 回到顶部
帅哥哟,离线,有人找我吗?
ming8604
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
  发帖心情 Post By:2017/11/29 9:29:00 [只看该作者]

sqlserver。

我就是用那个例子,下载之后,   数据保存时的Sql语句合成函数.Table    这个文件打不开。

 

 Functions.Execute

这个自定义函数,不会。例子看得不是特别懂。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/29 9:59:00 [只看该作者]

以下是引用ming8604在2017/11/29 9:29:00的发言:

sqlserver。

我就是用那个例子,下载之后,   数据保存时的Sql语句合成函数.Table    这个文件打不开。

 

 

下载一个试用版,或者是安装一个商业版,就可以打开.table的项目。


 回到顶部
帅哥哟,离线,有人找我吗?
ming8604
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:82 积分:816 威望:0 精华:0 注册:2016/9/30 11:31:00
  发帖心情 Post By:2017/11/29 10:41:00 [只看该作者]

我这个是开发版啊。要卸载这个才能安装呢?

 

能否讲解一下,Functions.Execute  这个函数?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/29 10:45:00 [只看该作者]

1、去下载开发版的地方,下载一个商业版,安装后使用。

 

2、内部函数,就是动态合成sql语句而已。


 回到顶部