OleDbCommand oleDbCmd = new OleDbCommand();
OleDbConnection bookConn = Sqlhelper.Conncect_Mdb();
oleDbCmd.Connection = bookConn;
oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0";
oleDbCmd.ExecuteNonQuery();
bookConn.Close();
这是我在ms访问中的alter table的代码,它在表级验证表达式中抛出错误语法错误。此代码适用于没有添加' DEFAULT 0'。我正在使用MS ACCESS 2007.Tried with this但我无法使用工具。
答案 0 :(得分:0)
如果我使用以下连接字符串,您的代码适用于我:
static public OleDbConnection Conncect_Mdb()
{
const string oledb = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=scratch.accdb";
var conn = new OleDbConnection(oledb);
conn.Open();
return conn;
}
有较旧的驱动程序,特别是那些在ODBC上运行的驱动程序,需要您指示驱动程序中需要哪些sql支持。 Odbc连接字符串中此类设置的示例是ExtendedAnsiSQL=1
。
如果您的安装程序没有支持Access 2007的Microsoft Access数据库引擎2010,则可以从Microsoft Download下载并安装可再发行组件。
答案 1 :(得分:0)
此答案与具体问题无关,但它确实完全回答了TITLE中发布的错误消息....
Syntax error in table-level validation expression in MS ACCESS
我收到了这个确切的错误,修复方法是从查询语句的末尾删除一个半冒号。
我正在使用OP的查询来展示解决方案......
oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0**;**";
应该是,
oleDbCmd.CommandText = "ALTER TABLE doc_comp ADD COLUMN versioncode NUMBER DEFAULT 0";
从查询语句中删除星号包围的半冒号。这为我解决了这个确切的错误。