以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]为什么不能正常返回字符列的最大字符长度? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50166) |
-- 作者:智友软件工作室 -- 发布时间: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 执行后窗口显示这样: 正常应该返回字符列的最大字符数的,现在不是
|
-- 作者:智友软件工作室 -- 发布时间:2014/4/30 14:43:00 -- Dim dt As DataTable = cmd.ExecuteReader 这个dt和实际加载的数据表有什么不一样嘛? 对于已经加载的数据表用这个dc.MaxLength可以显示列最大字符长度。 我这个是未加载的表(外部数据源中表,和项目无关的表)是不是这个原因导致的。 如果这样的话,是不是只能用sql语句了呢?
[此贴子已经被作者于2014-4-30 14:47:02编辑过]
|
-- 作者:Bin -- 发布时间:2014/4/30 14:48:00 -- 测试了一下,用SQLCOMMAND生成的表确实无法获取. |
-- 作者:有点甜 -- 发布时间:2014/4/30 14:52:00 -- 木有办法,你加一个临时表吧,类似这样
Dim q As new QueryBuilder |
-- 作者:智友软件工作室 -- 发布时间:2014/4/30 14:53:00 -- 算不算是个BUG ![]() |
-- 作者:有点甜 -- 发布时间:2014/4/30 14:53:00 -- 只需要一个临时表,最后把它删掉便可。
DataTables.Unload("临时表") |