C#如何获取每个列的类型和长度,然后使用长度填充以获取每个字段末尾的空格

我有一个控制台应用程序,它将SQL表中的数据提取到平面文件。 如何获取每个列的类型和长度,然后使用每列的长度填充(长度)以获取每个字段末尾的空格。 以下是我现在所拥有的不包含此function的内容。

谢谢

{ var destination = args[0]; var command = string.Format("Select * from {0}", Validator.Check(args[1])); var connectionstring = string.Format("Data Source={0}; Initial Catalog=dbname;Integrated Security=SSPI;", args[2]); var helper = new SqlHelper(command, CommandType.Text, connectionstring); using (StreamWriter writer = new StreamWriter(destination)) using (IDataReader reader = helper.ExecuteReader()) { while (reader.Read()) { Object[] values = new Object[reader.FieldCount]; int fieldCount = reader.GetValues(values); for (int i = 0; i < fieldCount; i++) writer.Write(values[i].ToString().PadRight(513)); writer.WriteLine(); } writer.Close(); } 

IDataReader提供了一个GetSchemaTable()方法 ,该方法提供了ColumnSize属性(这取决于底层提供者 – SQL Server版本在这里 )。

您可以使用DataReader's GetSchemaTable方法来检索列架构信息。 本文提供了有关获取有关检索数据的元数据的完整详细信息。

获得列大小后,可以使用String.PadRight方法向检索到的数据添加尾随字符。