现有的应用程序是在C#中。在启动期间,应用程序调用虚拟方法来更改数据库(例如,新版本可能需要计算新字段或其他内容)。将一个开放的OleDb连接传递给该方法。

我需要更改字段宽度。 ALTER TABLE语句工作正常。但是如果字段已经是合适的大小,我想避免执行ALTER TABLE语句。有没有办法使用相同的OleDb连接确定MS Access字段的大小?

有帮助吗?

解决方案

不确定我是否完全理解你的问题。
但您可以在表中查询0行(SELECT 1 FROM myTable WHERE 1 = 0)

您可以使用recorderdet的字段集合,按名称或索引引用该字段 并使用字段的属性,如大小,类型等。

这有帮助吗?

其他提示

以下是我根据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