- - PR -
SqlDataAdapterからスキーマ情報のみDataSetへ格納
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-08-05 18:29
AOPPです。
SqlDataAdapterを利用して、データベースの追加・更新を行っています。 追加の場合、 DataSetへ追加を行う際に、前もってDataSetにスキーマ情報(型・テーブル名) を設定して起きたいのですが、データベースを読み(SqlDataAdapter)DataSetを作成したいのですがよい方法が有ればアドバイスお願いします。 1.存在しないキーでFillする。(存在しないキーは、危険) 2.addなどで項目を生成する。(コード量が多くなる データベース変更の際、修正要) 3.データベースからデータセットオブジェクトを生成(xsd)しておく。 (データベース変更の際、修正要) 上記以外でなにかありますかね!!! |
|
投稿日時: 2003-08-05 18:44
4.FillSchemaメソッドを使う
#まだ試したことはないです |
|
投稿日時: 2003-08-05 21:07
aoppです。
FillSchemaメソッドってDataSetのテーブル情報(スキーマ)をDataTable の配列型にコピー する物だと思います。(勘違い?? データベース情報から取れるならよさそうです。) |
|
投稿日時: 2003-08-05 23:17
da.Fill(ds, "table_name");
の代わりに、 da.FillSchema(ds, SchemaType.Source, "table_name"); とかやるとうまくいきませんか? |
|
投稿日時: 2003-08-05 23:43
aoppです
Valhallaさんお手数かけてすみませえん SqlConnection a = new SqlConnection("....."); SqlDataAdapter schemaDA = new SqlDataAdapter("SELECT * FROM aaaa WHERE * = *",a) schemaDA.FillSchema(ds, SchemaType.Source, "aaaa"); ということですかね!!(効率よいSQL文何かないのかな--) ちとやってみます。 |
|
投稿日時: 2003-08-06 00:07
AOPPです。
WriteXmlSchemaで、確認したとろ問題なさそうですね。(0件でスキーマも正しい感じ) 1点気のなるのは、SQL文の条件文は、実際SQLSERVSER上で動作するときに働いているのですかね!!!モニタするしかないのかな |
|
投稿日時: 2003-08-06 03:44
> 1点気のなるのは、SQL文の条件文は、実際SQLSERVSER上で動作するときに働いている> のですかね!!!モニタするしかないのかな
たしかにそうですね。「1.存在しないキーでFillする」と変わらないような 気がしてきました。 そういう意味では、INFORMATION_SCHEMA.TABLES(?)などでスキーマを取得して 「2.addなどで項目を生成する」しかないのでしょうか。ん〜 |
1