以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34697)

--  作者:wfan0102
--  发布时间:2013/6/13 10:30:00
--  报错

图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看
从SQL数据源中,利用fill方法把数据写到table中,为什么有的表会提示错误?
--  作者:Bin
--  发布时间:2013/6/13 10:32:00
--  
为什么错误提示是  不支持updateCommand动态SQL生成?

既然是FILL数据  不返回任何数据的话你FILL什么呢?

问题是出现在你代码上.发出来看看.
[此贴子已经被作者于2013-6-13 10:32:28编辑过]

--  作者:wfan0102
--  发布时间:2013/6/13 11:22:00
--  

肯定是返回的啊,同样的语句在 查询分析器中是可以的,就是表名不一样,有的表报错,有的表没事!

 

获取所选数据源中所有表集合的代码:

-------------------------------------------------------------------------------------------

Dim DataList As WinForm.ListBox = e.Form.Controls("list")\'添加的数据源生成的列表
Dim TableList As WinForm.ListBox = e.Form.Controls("tablelist")\'由所选数据源获得的数据表列表
Dim Plist As WinForm.TabControl = e.Form.Controls("TabList")\'页面集合
Dim num As WinForm.TextBox = e.Form.Controls("number")\'返回数据表总数的变量
Dim SelStr As String \'返回选中的数据源的名称

Dim LTable As new DataTableBuilder("Tlist") \'定义临时表Tlist,存储添加的数据源
LTable.AddDef("LName",Gettype(String),32)
LTable.Build

If DataList.SelectedValue >"" Then
    SelStr = DataList.SelectedValue \'选中数据源值赋值给SelStr
   
    Dim lst As List(Of String) \'
    lst = Connections(SelStr).GetTableNames \'获得所选数据源的表集合
    For Each name As String In lst
    Dim dr As DataRow = DataTables("Tlist").DataRows.AddNew \'把表集合写到临时表中
    dr("LName") = name   
    Next
   
    TableList.DisplayMember = "LName" \'定义数据表列表的显示列,取值列
    TableList.ValueMember = "LName"
    TableList.DataSource = "TList"
    TableList.DataSort = "[LName] ASC"
    MessageBox.Show("已经生成表目录!")
    Plist.SelectedIndex = 1
    num.Text = TableList.Items.Count & "个表" \'显示表总数
Else
    MessageBox.Show("选择数据源!")
End If

-------------------------------------------------------------------------------------------

 

获取数据并填充的代码:

---------------------------------------------------------------------------------------------

 

Dim tblist As WinForm.ListBox = e.Form.Controls("tablelist") \'数据表列表
Dim dtlist As WinForm.ListBox = e.Form.Controls("list")\'数据源列表\'
Dim str As String = tblist.SelectedValue \'获得数据表中选中的值
Dim str1 As String = dtlist.SelectedValue \'获得数据源列表中选中的值

Tables("数据导入导出_数据表").Fill("select * from {" & str & "}",str1,False) \'把数据写入table表
DataTables("数据导入导出_数据表").multirowheader = False \'取消多层表头
DataTables("数据导入导出_数据表").BuildHeader

-----------------------------------------------------------------------------------------------


--  作者:狐狸爸爸
--  发布时间:2013/6/13 12:20:00
--  

没有主键,只能作为查询表:

 

Tables("数据导入导出_数据表").Fill("select * from {" & str & "}",str1,False) \'把数据写入table表

 

改为:

 

Tables("数据导入导出_数据表").Fill("select * from {" & str & "}",str1,True) \'把数据写入table表


--  作者:wfan0102
--  发布时间:2013/6/14 9:01:00
--  

1:foxtable所谓的没有主键,是指源数据表就没设主键么?可是我在MSS中查询表,是有主键的?

     还是这个问题,如果我想实现 查询数据后能在前台修改,有没有别的方法?

2:我想在窗口关闭前,删除掉所有的 数据源信息,在窗口的 beforeclose事件中添加代码:

        For Each Cn As Connection In Connections
       
        Connections.delete(Cn.Name)
        
        Next

     为什么删不干净,比如我一共加入四个数据源,第一次关闭后登录还剩余2个数据源,再关闭后登录剩余1一个,第三次关闭后登录就没了,按总数的一半删除,什么原因

 

 

 


--  作者:狐狸爸爸
--  发布时间:2013/6/14 9:13:00
--  

第一个问题,确实是没有主键造成的,如果你说有住进

第二个问题收到,可能有个bug,我检查一下。