我将一个列/字段添加到现有的Access数据库作为是/否字段,以便在Access工具中以及以编程方式外部显示用于用户输入/编辑的复选框。
我使用此SQL语句在表中创建列
"ALTER TABLE tablename ADD COLUMN UpdateLocked YESNO"
。
(我从MS文档中了解到,我无法在此声明中输入DEFAULT部分!)
创建后,以及稍后启动时,我通过以下方式创建适配器:
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = "SELECT * FROM tablename";
DataTable[] dtSchema = adapter.FillSchema(DBname, SchemaType.Source);
adapter.Fill(DataSet name); //Dataset used in DataGridView object
我看到的效果是:
我希望它允许正确读取YESNO字段数据,但更改创建SQL或SELECT语句的语法无效。 之前创建的YESNO列正确显示,是否有不同的方法来创建我可以使用的列的ALTER语句?
尝试设置默认值的ALTER OleDb命令失败是一个可以使用Update命令修复的项目,用于在添加后立即设置所有新记录字段值。我的主要问题是无法在我的DataGridView列复选框中读取YESNO存储的值。在adapter.Fill()期间,值未初始化。 (在调试器中显示{}值。)
答案 0 :(得分:1)
我发现我能够正确初始化YESNO字段的唯一方法是在以编程方式使用后续“UPDATE tablename SET fieldname = false
”创建字段后将每个布尔值初始化为false。感谢您查看我的问题。以这种方式设置默认值后,它似乎工作正常。这似乎没必要,但它确实有效。