1

既存のアプリケーションはC#です。起動時に、アプリケーションは仮想メソッドを呼び出してデータベースに変更を加えます(たとえば、新しいリビジョンでは、新しいフィールドなどを計算する必要がある場合があります)。開いているOleDb接続がメソッドに渡されます。

フィールド幅を変更する必要があります。ALTERTABLEステートメントは正常に機能しています。ただし、フィールドがすでに適切なサイズである場合は、ALTERTABLEステートメントの実行を避けたいと思います。同じOleDb接続を使用してMSAccessフィールドのサイズを決定する方法はありますか?

4

2 に答える 2

1

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"]);
于 2008-10-12T03:14:54.550 に答える
0

あなたの質問を完全に理解しているかどうかわかりません。
ただし、0 行のテーブルをクエリすることはできます (SELECT 1 FROM myTable WHERE 1= 0)

また、recordet のフィールド コレクションを使用して、そのフィールドを名前またはインデックスで参照し、サイズ、タイプなどのフィールドのプロパティを使用できます。

それは役に立ちますか?

于 2008-10-11T19:25:45.870 に答える