###前提・実現したいこと
C# .Net の FormApllication で、Xmlファイルを読み込んでデータセットに復元させようとしています。
復元する際に、データセット内の特定テーブルの特定列のデータ型(DataType)のみをint型にしたいのですが、どうすればいいかわかりません。全部string型になってしまいます。
###発生している問題・エラーメッセージ
「データを指定した後に DataType を変更することはできません。」
###ソースコード
C#
public static DataSet dataSet { get; set; }
public static void OpenFile(string fileFullPass)
{
if (dataSet == null)
{
dataSet = new DataSet();
}
else if (dataSet.Tables != null)
{
dataSet.Tables.Clear();
}
dataSet.ReadXml(fileFullPass);
for(int i = 1; i < dataSet.Tables.Count; i++){
dataSet.Tables[i].Columns[3].DataType = typeof(int); ← ここでエラー発生
}
}
}
読み込ませたファイルは以下のようなものです。
ちなみに、int型にしたいのは"cost"の項目です。
###補足情報(言語/FW/ツール等のバージョンなど)
①なお、インターネットで検索した結果、次のような方法であれば実現できることはわかったのですが、行のコピー作業が無駄に感じたので、他の方法を希望しています。
1 あらかじめデータテーブルを作って、int型指定をしておく。
2 Xmlファイルから読み込んだデータを、「1」で作ったテーブルに1行ずつImportRow()メソッドでコピーする。
②DataTable の中に"SchemaSerializationMode"というプロパティがあることがわかったのですが、これを使ってできないでしょうか? 使い方がわかりません。
③Xmlファイル自体に何かを書き込む形で、「これはint型のデータだ」とプログラムにわからせるための記述方法があれば知りたいです。
長くなりましたが、ご教示いただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/27 04:10