Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 确定数据表中列的字段长度_C#_Xml_Datatable - Fatal编程技术网

C# 确定数据表中列的字段长度

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

我有一个通过Dataset.ReadXML()方法填充的DataTable。我试图通过编程确定datatable中每列的最大字段长度。我所有列的MaxLength值始终默认为-1

关于如何确定合适的最大长度,有什么想法或例子吗?也许是基于表中的实际数据?(Datatable可以在25列中乘以200000+行范围)


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个字符或类似的值)。