質問

既存のアプリケーションは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"]);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top