现有应用程序使用 C#。在启动期间,应用程序调用一个虚拟方法来对数据库进行更改(例如,新修订可能需要计算新字段或其他内容)。打开的 OleDb 连接被传递到该方法中。
我需要更改字段宽度。ALTER TABLE 语句工作正常。但是如果字段已经是适当的大小,我想避免执行 ALTER TABLE 语句。有没有办法使用相同的 OleDb 连接来确定 MS Access 字段的大小?
这是我根据 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"]);
不确定我是否完全理解你的问题。
但是您可以查询该表的 0 行(SELECT 1 FROM myTable WHERE 1= 0)
您可以使用记录的字段集合,按名称或索引引用该字段,并使用字段的属性,如大小、类型等。
这有帮助吗?