C# 确定数据表中列的字段长度
我有一个通过Dataset.ReadXML()方法填充的DataTable。我试图通过编程确定datatable中每列的最大字段长度。我所有列的MaxLength值始终默认为-1 关于如何确定合适的最大长度,有什么想法或例子吗?也许是基于表中的实际数据?(Datatable可以在25列中乘以200000+行范围)C# 确定数据表中列的字段长度,c#,xml,datatable,C#,Xml,Datatable,我有一个通过Dataset.ReadXML()方法填充的DataTable。我试图通过编程确定datatable中每列的最大字段长度。我所有列的MaxLength值始终默认为-1 关于如何确定合适的最大长度,有什么想法或例子吗?也许是基于表中的实际数据?(Datatable可以在25列中乘以200000+行范围) C#2.0我认为它应该是DataSet.DataTable.Columns[0].MaxLength我不太明白你的目标是什么-你想找出什么?给定列将使用的字节数(例如,4表示INT,8
C#2.0我认为它应该是DataSet.DataTable.Columns[0].MaxLength我不太明白你的目标是什么-你想找出什么?给定列将使用的字节数(例如,4表示INT,8表示BIGINT等),或列“ColA”中所有字符串的实际当前最大长度 至于INT和其他数字和布尔类型——它们有一个固定的系统给定长度——没有问题 除非您的XML有一个限制字符串长度的模式(XSD文件),否则XML中的字符串字段可以是任意长度,因此在读入后,您的数据表无法真正知道定义的最大长度 您所能做的就是在DataTable中的所有行上循环,确定字符串的当前长度,并获取这些当前长度的最大值,作为您的参考框架 这有帮助吗
Marc我猜它可能是DataSet.DataTables[“tableName”]。Columns[“columnName”]。MaxLength。除了MaxLength似乎总是-1(不受限制?)之外,-1不是最大长度。根据文件退房。“如果列没有最大长度,则值为–1(默认)。”因此我认为它将是无限的。因此,DataSet.DataTable.Columns[0]。MaxLength=-1将是无限长度?您的回答证实了我的发现。我想我希望有一个不同的答案。。哦,好吧。感谢最终目标是确定通过web服务返回的字符串的最大长度,然后创建一个SQL脚本,在新的SQL表中生成等效字段。我想在这种情况下,您只需监视每个字符串的最大长度,然后根据实际情况猜测您可能要添加的额外长度(例如,四舍五入到最接近的100个字符或类似的值)。