Wie man MS Access Feldgröße über OleDb bestimmen
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?
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"]);