MS ACCESS中表级验证表达式中的语法错误

时间:2015-09-05 05:05:20

标签: c# ms-access-2010

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但我无法使用工具。

2 个答案:

答案 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";

从查询语句中删除星号包围的半冒号。这为我解决了这个确切的错误。