Foxtable(狐表)用户栏目专家坐堂 → [求助]求代码优化


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

主题:[求助]求代码优化

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/29 9:10:00 [只看该作者]

按钮代码
Dim cmd As New SQLCommand
Dim Count As Integer
cmd.CommandText = "update {总人口信息} As a,{总人口信息} As b set a.户主姓名 = b.姓名 where a.户号 = b.户号 And b.与户主关系='户主'"
Count= cmd.ExecuteNonQuery()
DataTables("总人口信息").Load

建议在DataColChanged事件写代码
这样只要增加一条记录就会自动填充户主姓名,不用每次都全部刷新一次

Select Case e.DataCol.Name
    Case "姓名"
        If e.DataRow("与户主关系") = "户主" Then
            e.DataTable.ReplaceFor("户主姓名",e.DataRow("姓名"),"户号 = '" & e.DataRow("户号") & "' and 户主姓名 is null")
        Else
            Dim dr As DataRow = e.DataTable.Find("户号 = '" & e.DataRow("户号") & "' and 与户主关系 = '户主'")
            If dr IsNot Nothing Then
                e.DataRow("户主姓名") = dr("姓名")
            End If
        End If
End Select

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


加好友 发短信
等级:狐神 帖子:4724 积分:34374 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/10/29 10:02:00 [只看该作者]

用这个吧,我的电脑(配置低)不超过11秒

 

Dim t1 As Date = Date.Now
Dim cmd As New SQLCommand
cmd.Cu pdate {总人口信息} set 户主姓名 = null WHERE 与户主关系 = '户主'"
cmd.ExecuteNonQuery()
DataTables("总人口信息").load
cmd.CommandText = "u pdate {总人口信息} set 户主姓名 = 姓名 WHERE 与户主关系 = '户主'"
cmd.ExecuteNonQuery()
DataTables("总人口信息").load
'Tables("总人口信息").sort = "户号,户主姓名 desc"
'
Dim drs As List(of DataRow) = DataTables("总人口信息").S elect("","户号,户主姓名 desc")
For i As Integer = 1 To drs.Count - 1
    If drs(i)("户号") = drs(i - 1)("户号") AndAlso drs(i-1).Isnull("户主姓名") = False
        drs(i)("户主姓名") = drs(i-1)("户主姓名")
    End If
Next
MessageBox.Show("计算结束," & DataTables("总人口信息").DataRows.Count & "条记录,耗时: " & (Date.Now - t1).TotalSeconds & "秒")


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20161029100003.png
图片点击可在新窗口打开查看

 回到顶部
总数 12 上一页 1 2