OleDbを介してMS Accessフィールドサイズを決定する方法
質問
既存のアプリケーションはC#です。起動時に、アプリケーションは仮想メソッドを呼び出してデータベースに変更を加えます(たとえば、新しいリビジョンでは新しいフィールドなどを計算する必要がある場合があります)。開いているOleDb接続がメソッドに渡されます。
フィールド幅を変更する必要があります。 ALTER TABLEステートメントは正常に機能しています。しかし、フィールドがすでに適切なサイズである場合、ALTER TABLEステートメントの実行を避けたいと思います。同じOleDb接続を使用してMS Accessフィールドのサイズを決定する方法はありますか?
解決
あなたの質問を完全に理解しているかどうかわからない。
ただし、0行のテーブルをクエリできます(SELECT 1 FROM myTable WHERE 1 = 0)
また、レコードセットのフィールドコレクションを使用して、名前またはインデックスでそのフィールドを参照できます。
サイズやタイプなどのフィールドのプロパティを使用します。
それは役立ちますか?
他のヒント
shahkalpeshの答えに基づいて私が思いついたのは次のとおりです。
var command = new OleDbCommand("SELECT FIELD FROM TABLE", connection);
var reader = command.ExecuteReader(CommandBehavior.SchemaOnly);
var schema = reader.GetSchemaTable();
var size = Convert.ToInt32(table.Rows[0]["ColumnSize"]);
所属していません StackOverflow