Frage

Die bestehende Anwendung ist in C #. Während des Startvorgangs die Anwendung eine virtuelle Methode ruft Änderungen in der Datenbank zu machen (kann eine neue Revision zum Beispiel brauchen ein neues Feld oder etwas berechnen). Eine offene OleDb Verbindung wird in die Methode übergeben.

Ich brauche eine Feldbreite zu ändern. Die ALTE TABLE-Anweisung funktioniert gut. Aber ich mochte die ALTE TABLE-Anweisung vermeiden Ausführung, wenn das Feld bereits die entsprechende Größe. Gibt es eine Möglichkeit, die Größe eines MS Access-Feld mit der gleichen OleDb Verbindung zu bestimmen?

War es hilfreich?

Lösung

Nicht sicher, ob ich verstehe Ihre Frage vollständig.
Aber man könnte die Tabelle für 0 Zeilen Abfrage (SELECT 1 FROM myTable WHERE 1 = 0)

Und könnten Sie recordet Feld Sammlung verwenden, finden Sie in diesem Feld nach Name oder Index und Feld der Eigenschaft wie Größe verwenden, geben usw.

Ist diese Hilfe?

Andere Tipps

Hier ist, was ich mit auf shahkalpesh Antwort kam basiert:

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"]);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top