以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加数据表行数据的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88355)

--  作者:天蝉一线
--  发布时间:2016/8/1 14:32:00
--  增加数据表行数据的问题
我用sql语句增加了后台行数据,保存后,datatable表里面的行缺没有增加是怎么回事
Dim kmbm As String = e.Form.Controls("kmbm").Value
Dim km1 As String = e.Form.Controls("km1").Value
Dim km2 As String = e.Form.Controls("km2").Value
Dim km3 As String  = e.Form.Controls("km3").Value
Dim km4 As String = e.Form.Controls("km4").Value
Dim km5 As String = e.Form.Controls("km5").Value
Dim km6 As String = e.Form.Controls("km6").Value
Dim trV1 As WinForm.TreeView = Forms("会计科目设置").Controls("TreeView1")
Dim lst As WinForm.Table = Forms("会计科目设置").Controls("Table1")
Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.Connectio n N ame = "cwgl"
If km2 = "" OrElse km3 = "" OrElse km4 = "" Then
    Messagebox.show("支出性质一级科目,二级科目,经济分类一级科目不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select Count(*) Fro m {会计科目} Where 科目编码 = \'" & kmbm & "\'"
If cmd.ExecuteScalar > 0 Then
    Messagebox.show("增加科目失败,已经能存在相同的科目!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Inser t I n to {会计科目} ([科目编码],[一级科目],[二级科目],[三级科目],[四级科目],[五级科目],[六级科目]) Values (\'"
cmd.CommandText = cmd.CommandText & kmbm & "\',\'" & km1 & "\',\'" & km2 & "\',\'" & km3 & "\',\'"& km4 & "\',\'" & km5 & "\',\'" & km6 & "\')"
If cmd.ExecuteNonQuery = 1 Then \'返回1表示增加成功
    If Forms("会计科目设置").Opened Then
        cmd.CommandText = "SELECT * Fro m {会计科目}"
        dt = cmd.ExecuteReader()
        Dim bd1 As New GroupTableBuilder("统计表1",dt)
        bd1.Groups.AddDef("科目编码","会计科目编码") 
        bd1.Groups.AddDef("一级科目","功能类科目名称") 
        bd1.Groups.AddDef("二级科目","支出性质分类_一级科目") 
        bd1.Groups.AddDef("三级科目","支出性质分类_二级科目") 
        bd1.Groups.AddDef("四级科目","经济分类_一级科目") 
        bd1.Groups.AddDef("五级科目","经济分类_二级科目")
        bd1.Groups.AddDef("六级科目","经济分类_三级科目") 
        Tables("会计科目设置_Table1").DataSource =  bd1.BuildDataSource()
        Tables("会计科目设置_table1").AutoSizeCols() \'设置自动列宽
        trv1.BuildTree("会计科目设置_Table1","功能类科目名称|支出性质分类_一级科目|支出性质分类_二级科目|经济分类_一级科目|经济分类_二级科目|经济分类_三级科目")
    End If
    \' Dim dr As DataRow
    For Each dr As DataRow In DataTables("会计科目").Select("[科目编码] = \'"& lst.Table.Current("会计科目编码") &"\'")
                       dr("一级科目") = lst.Table.Current("功能类科目名称")
                      dr("二级科目")= lst.Table.Current("支出性质分类_一级科目")
                      dr("三级科目")= lst.Table.Current("支出性质分类_二级科目")
                     dr("四级科目")= lst.Table.Current("经济分类_一级科目")
                    dr("五级科目") = lst.Table.Current("经济分类_二级科目")
                    dr("六级科目")= lst.Table.Current("经济分类_三级科目")
     Next
    e.Form.Close()
End If

--  作者:大红袍
--  发布时间:2016/8/1 14:46:00
--  

For Each dr As DataRow In DataTables("会计科目").Select("[科目编码] = \'"& lst.Table.Current("会计科目编码") &"\'")
    dr("一级科目") = lst.Table.Current("功能类科目名称")
    dr("二级科目")= lst.Table.Current("支出性质分类_一级科目")
    dr("三级科目")= lst.Table.Current("支出性质分类_二级科目")
    dr("四级科目")= lst.Table.Current("经济分类_一级科目")
    dr("五级科目") = lst.Table.Current("经济分类_二级科目")
    dr("六级科目")= lst.Table.Current("经济分类_三级科目")
Next

 

改成

 

DataTables("会计科目").LoadFilter = ""

DataTables("会计科目").Load

For Each dr As DataRow In DataTables("会计科目").Select("[科目编码] = \'"& lst.Table.Current("会计科目编码") &"\'")
    dr("一级科目") = lst.Table.Current("功能类科目名称")
    dr("二级科目")= lst.Table.Current("支出性质分类_一级科目")
    dr("三级科目")= lst.Table.Current("支出性质分类_二级科目")
    dr("四级科目")= lst.Table.Current("经济分类_一级科目")
    dr("五级科目") = lst.Table.Current("经济分类_二级科目")
    dr("六级科目")= lst.Table.Current("经济分类_三级科目")
Next


--  作者:天蝉一线
--  发布时间:2016/8/1 16:39:00
--  
不行呀,多出来一行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:错误图片.rar


--  作者:大红袍
--  发布时间:2016/8/1 17:12:00
--  

多一行空行和上面的代码无关

 

或者是,先试试

 

DataTables("会计科目").LoadFilter = ""

DataTables("会计科目").Load(False)


--  作者:天蝉一线
--  发布时间:2016/8/1 17:14:00
--  

好了,谢谢