Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么不能正常返回字符列的最大字符长度?


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

主题:[求助]为什么不能正常返回字符列的最大字符长度?

帅哥哟,离线,有人找我吗?
智友软件工作室
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
[求助]为什么不能正常返回字符列的最大字符长度?  发帖心情 Post By:2014/4/30 14:33:00 [只看该作者]

代码这样:
Dim lst2 As WinForm.ListBox = e.Form.Controls("ListBox2")
lst2.items.Clear
Dim biaoname As String = lst.SelectedItem
'MessageBox.Show(biaoname)
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "select * From {" & biaoname & "} Where [_Identify] Is Null"
Dim dt As DataTable = cmd.ExecuteReader
Dim Value As String
For Each dc As DataCol In dt.DataCols
    'output.show(dc.name & ":" & dc.datatype.name)
    Value = dc.datatype.name
    Select Case Value
        Case = "String"
            lst2.Items.Add(dc.name & "(" & dc.datatype.name & "," & dc.MaxLength & ")")
        Case Else
            lst2.Items.Add(dc.name & "(" & dc.datatype.name & ")")
    End Select
Next

执行后窗口显示这样:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140430143121.png
图片点击可在新窗口打开查看

正常应该返回字符列的最大字符数的,现在不是


 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2014/4/30 14:43:00 [只看该作者]

Dim dt As DataTable = cmd.ExecuteReader  这个dt和实际加载的数据表有什么不一样嘛?  
对于已经加载的数据表用这个dc.MaxLength可以显示列最大字符长度。
我这个是未加载的表(外部数据源中表,和项目无关的表)是不是这个原因导致的。
如果这样的话,是不是只能用sql语句了呢?
[此贴子已经被作者于2014-4-30 14:47:02编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/30 14:48:00 [只看该作者]

测试了一下,用SQLCOMMAND生成的表确实无法获取.

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


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

 木有办法,你加一个临时表吧,类似这样

 

Dim q As new QueryBuilder
q.TableName = "临时表"
q.SelectString = "Select * from {表A} where 1=2"
q.Build
Dim dt As DataTable = DataTables("临时表")
For Each dc As DataCol In dt.DataCols
    output.show(dc.maxlength)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
智友软件工作室
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:912 积分:7445 威望:0 精华:0 注册:2013/2/25 13:10:00
  发帖心情 Post By:2014/4/30 14:53:00 [只看该作者]

算不算是个BUG图片点击可在新窗口打开查看

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


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

 只需要一个临时表,最后把它删掉便可。

 

DataTables.Unload("临时表")


 回到顶部