以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为何用SQLCommand得到表的字符列的字符数均为”-1”?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42382)

--  作者:y2287958
--  发布时间:2013/11/9 22:19:00
--  为何用SQLCommand得到表的字符列的字符数均为”-1”?
如题。
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT * From {表A}"
dt = cmd.ExecuteReader()
For Each dc As DataCol In dt.DataCols
    Output.Show(dc.MaxLength)
Next

以上代码得到结果全部是:-1(实际表的所有列全部为字符列,MaxLength全部是16
请指教。

--  作者:y2287958
--  发布时间:2013/11/10 11:40:00
--  
希望得到回复。
--  作者:e-png
--  发布时间:2013/11/10 19:27:00
--  

maxlength对临时表无效。


--  作者:有点甜
--  发布时间:2013/11/10 19:38:00
--  
 sqlserver中获取字段长度,如下,参考

SELECT syscolumns.length 
FROM syscolumns
WHERE syscolumns.id = object_id(\'表名\') and syscolumns.name=\'字段名\'

--  作者:y2287958
--  发布时间:2013/11/11 7:53:00
--  
还是需要更加实用的回复
--  作者:Bin
--  发布时间:2013/11/11 8:46:00
--  
3楼和4楼已经给出答案和原因了.