以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]批量更新表中某一字段问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101852) |
-- 作者:lzzhx -- 发布时间:2017/6/8 13:32:00 -- [求助]批量更新表中某一字段问题 请教老师,看看下面代码有什么问题 代码在DataColChanged事件中 Dim biaoming As String = e.DataRow("表名称") Dim lieming As String = e.DataRow("字段名称") Dim cmd As new SQLCommand cmd.ConnectionName = gs_strActiveConn cmd.CommandText="se lect _Identify," & lieming & " from " & biaoming Dim dt As DataTable = cmd.ExecuteReader(True) If dt.DataRows.Count > 0 Then Forms("提示窗口").Visible = True Dim p As WinForm.ProgressBar = Forms("提示窗口").Controls("Bar1") p.Visible = True p.Maximum =dt.DataRows.Count \'设置最大值 p.Minimum = 0 \'设置最小值 p.Value = 0 \'设置当前值 Dim j As Integer =0 Dim str As String = "" _KQSJ = False For Each dr As DataRow In dt.DataRows If e.OldValue = "" Then str = e.NewValue & dr(lieming) Else str = dr(lieming).Replace(e.OldValue,e.NewValue) End If dr(lieming) = str j=j+1 p.Value = j Next _KQSJ = True dt.Save() p.Visible = False Forms("提示窗口").Visible = False End If If DataTables.Contains(e.DataRow("表名称")) = True Then DataTables(e.DataRow("表名称")).Load End If dt有5000条记录,不执行红色部分代码时,运行很快结束,包括红色部分代码时,进度条只显示一点就停了,整个运行过程要十多分钟才结束,请老师看看有什么问题?
|
-- 作者:lzzhx -- 发布时间:2017/6/8 13:48:00 -- 要达到的目的是: 表A有5000条记录,其中字段【编号】的值为 前缀1+自动数字,现在要将 前缀1改为前缀2,如何写代码?
|
-- 作者:lzzhx -- 发布时间:2017/6/8 15:06:00 -- 请老师看看 |
-- 作者:有点蓝 -- 发布时间:2017/6/8 15:15:00 -- 直接在sql里面更新不就行了 cmd.CommandText="update from " & biaoming & "set " & lieming & " = Replace(" & lieming & ",\'" & e.OldValue & "\',\'" & e.NewValue & "\') " |
-- 作者:lzzhx -- 发布时间:2017/6/8 15:48:00 -- 提示错误: from附近有语法错误 |
-- 作者:lzzhx -- 发布时间:2017/6/8 15:52:00 -- 取掉 from就可以了,但e.OldValue 是空(即原来没有前缀现在要加前缀)的时候怎么办 |
-- 作者:有点蓝 -- 发布时间:2017/6/8 16:22:00 -- if e.OldValue > "" then cmd.CommandText="update " & biaoming & "set " & lieming & " = Replace(" & lieming & ",\'" & e.OldValue & "\',\'" & e.NewValue & "\') " else cmd.CommandText="update " & biaoming & "set " & lieming & " = \'" & e.NewValue & "\' + " & lieming endif
|
-- 作者:lzzhx -- 发布时间:2017/6/8 17:11:00 -- 谢谢老师 |