5

SQL テーブルからフラット ファイルにデータを抽出するコンソール アプリケーションがあります。各列のタイプと長さを取得し、各列の長さを padright(length) に使用して、各フィールドの末尾にあるスペースを取得するにはどうすればよいですか。これが私が今持っているもので、この機能は含まれていません。

ありがとう

{
                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();
            }
4

2 に答える 2

4

メソッドを使用して、DataReader's GetSchemaTable列スキーマ情報を取得できます。この記事には、取得したデータに関するメタデータの取得に関する詳細が記載されています。

列のサイズを取得したら、String.PadRightメソッドを使用して、取得したデータに末尾の文字を追加できます。

于 2010-06-03T18:35:45.227 に答える