Foxtable(狐表)用户栏目专家坐堂 → 请问错误:不存在名称为"sqlcmd"的datatable?


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

主题:请问错误:不存在名称为"sqlcmd"的datatable?

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


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

Dim sqltable As DataTable = DataTables("sqltable")
Dim dlg As New OpenFileDialog
dlg.Filter = "Accese文件|*.mdb"
dlg.MultiSelect = True


If dlg.ShowDialog = DialogResult.Ok Then
    For Each File As String In dlg.FileNames
        '遍历所选的Access文件名
        If Connections.Contains("newsql") Then     '判断是否存在某一数据源
            Connections.Delete("newsql")   '如果有就删除
        End If
        Connections.Add("newsql","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & file & ";Persist Security Info=False")   '把选择的Access文件新建一个数据源      '
        Dim  conn As Connection = Connections("newsql")    '定义数据源
        Dim lst As List(Of String)
        lst = conn.GetTableNames  '所有表
        For Each nm As String In lst
            Dim cmd As new SQLCommand
            cmd.ConnectionName = "newsql"
            cmd.CommandText = "select * from {" & nm & "} where 1=2"
            Dim tb As DataTable = cmd.ExecuteReader
            Dim mColCount As Integer = tb.dataCols.count()
            Dim dr As DataRow = sqltable.addnew()
            dr("Fullmdbname") = file
            dr("mdbname") = FileSys.GetName(file)
            dr("cnname") = conn.name
            dr("tablename") = nm
            dr("ColCount") = mColCount
        Next
    Next
End If


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


加好友 发短信
等级:六尾狐 帖子:1433 积分:10763 威望:0 精华:0 注册:2013/3/29 10:23:00
  发帖心情 Post By:2018/7/3 8:32:00 [只看该作者]

3Q!!

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


加好友 发短信
等级:六尾狐 帖子:1433 积分:10763 威望:0 精华:0 注册:2013/3/29 10:23:00
  发帖心情 Post By:2018/7/4 13:08:00 [只看该作者]

请问字符长度为何皆为-1?

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


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

回复13楼,那就改成querybuilder或者OuterTableBuilder

 

http://www.foxtable.com/webhelp/scr/0695.htm

 

http://www.foxtable.com/webhelp/scr/1279.htm

 


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


加好友 发短信
等级:六尾狐 帖子:1433 积分:10763 威望:0 精华:0 注册:2013/3/29 10:23:00
  发帖心情 Post By:2018/7/5 15:33:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:遍歷access表.zip

帮忙看一下错误,顺便分享

 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/5 16:19:00 [只看该作者]

什么错误?怎么操作出现错误

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


加好友 发短信
等级:六尾狐 帖子:1433 积分:10763 威望:0 精华:0 注册:2013/3/29 10:23:00
  发帖心情 Post By:2018/7/5 16:27:00 [只看该作者]

字符长度为何皆为-1

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/5 17:06:00 [只看该作者]

主表才有这个数据,临时表没有的

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


加好友 发短信
等级:六尾狐 帖子:1433 积分:10763 威望:0 精华:0 注册:2013/3/29 10:23:00
  发帖心情 Post By:2018/7/6 5:38:00 [只看该作者]

但是这样写maxlength就正确了

Dim cmd As new QueryBuilder 

cmd.ConnectionName = "newsql"

cmd.SelectString = "select * from {" & nm & "} where 1=2"

cmd.TableName = nm

cmd.Build


可是都会出现如下讯息,要如何处理?

此主题相关图片如下:xx.jpg
按此在新窗口浏览图片

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


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

Dim TableDB As DataTable = DataTables("TableDB")
Dim FieldDB  As DataTable = DataTables("FieldDB")

Dim dlg As New OpenFileDialog
dlg.Filter = "Accese文件|*.mdb"
dlg.MultiSelect = True
dlg.Title = "请用鼠标单选或多选*.mdb格式的文件,然后点击确定"

If dlg.ShowDialog = DialogResult.Ok Then
    For Each File As String In dlg.FileNames
        '遍历所选的Access文件名
        If Connections.Contains("newsql") Then     '判断是否存在某一数据源
            Connections.Delete("newsql")   '如果有就删除
        End If
        Connections.Add("newsql","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & file & ";Persist Security Info=False")   '把选择的Access文件新建一个数据源
        Dim  conn As Connection = Connections("newsql")    '定义数据源
        Dim lst As List(Of String)
        lst = conn.GetTableNames  '所有表
        For Each nm As String In lst
            Dim cmd As new QueryBuilder
            cmd.ConnectionName = "newsql"
            cmd.SelectString = "select * from {" & nm & "} where 1=2"
            cmd.TableName = nm
            cmd.Build
            Dim tb As DataTable = DataTables(nm)
           
            Dim mColCount As Integer = tb.dataCols.count()
            Dim dr As DataRow = TableDB.addnew()
            dr("Fullmdbname") = file
            dr("mdbname") = FileSys.GetName(file)
            dr("cnname") = conn.name
            dr("tablename") = nm
            dr("ColCount") = mColCount
            '--------------------------------------------
            'For Each dc As DataCol In tb.DataCols
            'Dim dr1 As DataRow = FieldDB.addnew()
            'dr1("表名") = nm
            'dr1("列名") = dc.name
            '
            'dr1("列类型") = dc.datatype.Name
            'dr1("字符长度") =  dc.MaxLength
            '
            'dr1("表达式内容") = dc.Expression
            'dr1("表标题") =tb.Caption
            'dr1("列标题")=dc.caption
            'dr1("表类别") = tb.Type
            ''-------------------------------------------------------------
            'Dim dt As DataTable  =  DataTables("临时表")
            For Each dc As DataCol In tb.DataCols
                Dim dr1 As DataRow =  FieldDB.AddNew()
                dr1("Tablename") = nm
                dr1("列名") = dc.name
                dr1("表达式内容") = dc.Expression
                dr1("表标题") =tb.Caption
                dr1("列标题")=dc.caption
                dr1("表类别") = tb.Type
                dr1("mdbName") = dr("mdbname")
                If dc.DataType.Name = "String" Then
                    dr1("字符长度") = dc.MaxLength
                    MessageBox.show(dc.MaxLength)
                End If
                Select Case dc.DataType.Name
                    Case "String"
                        If dc.MaxLength > 255 Then
                            dr1("列类型") = "备注"
                        Else
                            dr1("列类型") = "字符"
                        End If
                    Case "DateTime"
                        dr1("列类型") = "日期时间"
                    Case "Boolean"
                        dr1("列类型") = "逻辑"
                    Case "Int32"
                        dr1("列类型") = "整数"
                    Case "Int16"
                        dr1("列类型") = "短整数"
                    Case "Byte"
                        dr1("列类型") = "微整数"
                    Case "Double"
                        dr1("列类型") = "双精度"
                    Case "Single"
                        dr1("列类型") = "单精度"
                    Case "Decimal"
                        dr1("列类型") = "高精度"
                End Select
               
                '  DataTables("FieldDB").Save()
                ' DataTables("FieldDB").load()
               
            Next
            DataTables.unload(nm)
        Next
    Next
End If
Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
tv.BuildTree("TableDB","mdbname|tablename")


 回到顶部
总数 21 上一页 1 2 3 下一页