DataSet(複数のデータテーブル)をメモ帳にエクスポートする方法。C#から
注: 単一の DataTable ではなく、DataSet からの複数の DataTable。
DataSet(複数のデータテーブル)をメモ帳にエクスポートする方法。C#から
注: 単一の DataTable ではなく、DataSet からの複数の DataTable。
簡単なものを提案するか、トランスレータを作成するか、Web で利用可能な他のライブラリをダウンロードします。
あなたが一番行きたい
public interfacte IExport
{
bool Export(Databale sometable);// this can also reference interface
//concrete implementation could also handle saving of file
}
次に、具象クラスを呼び出してその値を実装し、ファクトリ パターン、依存性注入などを使用して具象型を提供します。その後、必要な数のファイル タイプをサポートするために、必要な数のコンバーターを追加し続けることができます。
private void Write(System.Data.DataSet dts, string outputFilePath)
{
System.Data.DataTable dt = new System.Data.DataTable();
for (int z = 0; z < dts.Tables.Count; z++)
{
dt = dts.Tables[z];
int[] maxLengths = new int[dt.Columns.Count];
for (int i = 0; i < dt.Columns.Count; i++)
{
maxLengths[i] = dt.Columns[i].ColumnName.Length;
foreach (DataRow row in dt.Rows)
{
if (!row.IsNull(i))
{
int length = row[i].ToString().Length;
if (length > maxLengths[i])
{
maxLengths[i] = length;
}
}
}
}
using (StreamWriter sw = new StreamWriter(outputFilePath, true))
{
for (int i = 0; i < dt.Columns.Count; i++)
{
sw.Write(dt.Columns[i].ColumnName.PadRight(maxLengths[i] + 2));
}
sw.WriteLine();
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
if (!row.IsNull(i))
{
sw.Write(row[i].ToString().PadRight(maxLengths[i] + 2));
}
else
{
sw.Write(new string(' ', maxLengths[i] + 2));
}
}
sw.WriteLine();
}
sw.Close();
}
}
}