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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/1 20:35:00 [显示全部帖子]

1、表添加到foxtable里面了没有?

 

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

 

2、引用尽量的时候,你设置的表名是什么?

 

3、你打开项目的时候,有没有把表格加载显示出来?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 11:53:00 [显示全部帖子]

1、贴出的代码,请自动分段,不要写在一起;

 

2、执行代码出现什么错误?请截图说明。

 

3、如果外部数据表之前没有添加过进来,是不能直接load进来的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 14:19:00 [显示全部帖子]

以下是引用tennis在2018/7/2 13:06:00的发言:
从代码编辑器贴出OK,但发表后就全部集在一起不知为什么.

 

换一个浏览器访问论坛。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 14:20:00 [显示全部帖子]

以下是引用tennis在2018/7/2 13:09:00的发言:
遍歷ACCESS存入其表中出現錯誤

 

如果外部数据表之前没有添加过进来,是不能直接load进来的。

 

可以换一种方式加入外部表 http://www.foxtable.com/webhelp/scr/1279.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")


 回到顶部