以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 保存按钮的的保存速度问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129722) |
-- 作者:whx007 -- 发布时间:2019/1/4 16:15:00 -- 保存按钮的的保存速度问题 数据库采用access,目前数据库有2万多条记录,当点击保存按钮非常慢,有时超过5秒。请问以下代码能怎么优化提高效率。 按钮1代码: Dim rq As String = e.Form.Controls("DateTimePicker1").Value Dim cpxh As String = e.Form.Controls("dropbox2").Value Dim dj As String = e.Form.Controls("textbox5").Value Dim sl As String = e.Form.Controls("NumericComboBox2").Value If rq = "" Then MessageBox.Show("请输入销售日期,不能为空!", "错误提示") ElseIf cpxh = "" Then MessageBox.Show("The product model cannot be empty,please enter产品型号不能为空,请输入!", "错误提示") ElseIf sl = "" Then MessageBox.Show("The quantity cannot be empty,please enter(请输入数量,不能为空!)", "错误提示") Else Dim tbl As Table = Tables("销售明细表") Dim r As Row = tbl.AddNew() r("订单号") = e.Form.Controls("TextBox2").Text r("产品型号") = e.Form.Controls("dropbox2").Text r("产品类别") = e.Form.Controls("产品类别").Text r("单价成本") = e.Form.Controls("单价成本").Text r("销售单价") = e.Form.Controls("TextBox5").Text r("数量") = e.Form.Controls("NumericComboBox2").Text If e.Form.Controls("NumericComboBox1").Value <> 0 Then Dim r1 As Row = Tables("订单出库明细表").AddNew r1("提货日期") = e.Form.Controls("datetimepicker1").Text r1("订单号") = e.Form.Controls("TextBox2").Text r1("产品型号") = e.Form.Controls("dropbox2").Text r1("数量") = e.Form.Controls("NumericComboBox2").Text r1("已提数量") = e.Form.Controls("NumericComboBox1").Text End If End If
e.Form.Controls("DropBox2").Value= "" e.Form.Controls("textbox5").Value= "" e.Form.Controls("NumericComboBox2").Value = "" e.Form.Controls("未提数量").Text = "" 销售明细表和订单出库明细表通过订单号关联 按钮2代码: Dim fs As String = e.Form.Controls("ComboBox1").Value If fs = "" Then MessageBox.Show("The payment cannot be empty,please enter 支付方式不能为空,请输入!", "错误提示") Return End If Dim dr As Row = Tables("销售订单").Current If dr IsNot Nothing AndAlso dr.DataRow.RowState = DataRowState.Added Then If Tables("销售明细表").Current Is Nothing Then MessageBox.Show("No details cannot be saved 无订单明细,无法保存!", "Error 错误提示") dr.Delete Else dr("客户名称") = e.Form.Controls("DropBox3").Text dr("客户电话") = e.Form.Controls("DropBox1").Text dr("折扣") = e.Form.Controls("TextBox3").Text dr("备注") =dr("备注") & vbcrlf & e.Form.Controls("TextBox4").Text dr.Save Tables("销售订单").AllowEdit = False Tables("销售明细表").save Tables("订单出库明细表").Save End If End If If User.Group <> "经理" Then e.Form.Controls("textbox9").text = 0 End If If e.Form.Controls("TextBox9").Value <> 0 Then Dim tbl As Table = Tables("订单付款明细表") Dim r As Row = tbl.AddNew() r("付款日期") = e.Form.Controls("datetimepicker1").Text r("订单号") = e.Form.Controls("TextBox2").Text r("付款金额") = e.Form.Controls("TextBox9").Text r("付款方式") = e.Form.Controls("ComboBox1").Text If tbl.Current IsNot Nothing Then tbl.Current.Save() End If End If Dim khmc As WinForm.DropDownBox = e.Form.Controls("DropBox3") Dim khdh As WinForm.DropDownBox = e.Form.Controls("DropBox1") Dim zk As WinForm.TextBox = e.Form.Controls("textbox3") Dim cpxh As WinForm.DropDownBox = e.Form.Controls("DropBox2") Dim sl As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox2") Dim dj As WinForm.TextBox = e.Form.Controls("textbox5") Dim sfje As WinForm.TextBox = e.Form.Controls("textbox9") Dim ytsl As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1") Dim bz As WinForm.TextBox = e.Form.Controls("textbox4") Dim zffs As WinForm.ComboBox = e.Form.Controls("ComboBox1") khmc.Text = "" khdh.Text = "" cpxh.Text = "" sl.Text = "" dj.Text = "" sfje.Text = "" zk.Text = "0" ytsl.Text = "" bz.Text = "" zffs.Text = "Cash" Dim t As Table = Tables("销售主界面_Table2") With Tables("销售订单") If .Current Is Nothing Then t.Filter = "False" Else t.Filter = "订单号 = \'" & .Current("订单号") & "\'" End If End With With Tables("销售明细表") Tables("销售明细表").Filter = "1=2" .Cols("数量").GrandTotal = True .Cols("金额").GrandTotal = True .GrandTotal = False End With Dim xzcp As WinForm.Button = e.Form.Controls("新增产品") xzcp.Enabled = False Dim bc As WinForm.Button = e.Form.Controls("保存") bc.Enabled = False 销售订单和销售明细表通过订单号关联,销售订单和订单付款明细通过订单号关联。 |
-- 作者:有点甜 -- 发布时间:2019/1/4 16:26:00 --
保存多少行数据?如果保存的数据量大,耗时是肯定的。
或者看看 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&replyID=680089&skin=1
|
-- 作者:whx007 -- 发布时间:2019/1/4 17:13:00 -- 大多数情况下每次少于10行,通常就是4-5行一次。 甜老师,你给的例子下载来我打不开,我是开发版,不能打开非开发版本的项目。 还有一个问题是,局域网使用的时候也很慢,数据库保存在A电脑上,A共享数据库给B,C电脑,B,C电脑在保存的时候非常慢,保存的速度完全不能接受。
|
-- 作者:有点甜 -- 发布时间:2019/1/4 17:28:00 -- 1、做一个对应的实例发上来测试;
2、你在下载开发版的地方,下载一个商业版安装使用。 |
-- 作者:whx007 -- 发布时间:2019/1/7 1:27:00 -- 这两天上传不了附件,这么回事 |
-- 作者:有点甜 -- 发布时间:2019/1/7 9:31:00 -- 以下是引用whx007在2019/1/7 1:27:00的发言:
这两天上传不了附件,这么回事
文件大小不能超过2M,用ie浏览器访问论坛再上传。
|
-- 作者:whx007 -- 发布时间:2019/1/7 14:46:00 -- 使用的是ie浏览器,点击添加附件没有任何反应,没有弹窗出来. |
-- 作者:有点甜 -- 发布时间:2019/1/7 15:26:00 -- 以下是引用whx007在2019/1/7 14:46:00的发言:
使用的是ie浏览器,点击添加附件没有任何反应,没有弹窗出来.
试试ie里面的兼容模式。 |
-- 作者:whx007 -- 发布时间:2019/1/7 15:30:00 --
2:重复填入name,cell,model产品型号,quanty数量,再点2 add product,5-6次 3:点击3save
现在数据库2万行,点击按钮2和3越来越慢 [此贴子已经被作者于2019/1/9 4:08:52编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/7 15:46:00 -- 具体项目和数据一起发上来测试。 |