VB.Net OleDbException“字段定义中的语法错误”

1 sql vb.net

我试图通过 VB.Net 中的 OleDbCommand 使用以下 SQL 在 Access 数据库中创建一个表:

CREATE TABLE InTemp (Month DATE, Description TEXT(255), Cost DOUBLE, Patron TEXT(255));
Run Code Online (Sandbox Code Playgroud)

该代码在 Access 中运行良好,但在 VB.Net 中运行它会返回 OleDbException“字段定义中的语法错误”。

完整的VB代码:

Dim con As New OleDb.OleDbConnection
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = " + DatabaseLocale
con.Open()
Dim createInTemp As New OleDb.OleDbCommand("CREATE TABLE InTemp (Month DATE, Description TEXT(255), Cost DOUBLE, Patron TEXT(255));", con)
createInTemp.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)

我知道连接没有问题,因为它在我的程序的其他地方工作。

任何帮助都很高兴!

Jam*_*mes 5

我猜测Month DATE这里的问题是,Month是 MS Access 中的一个函数,所以很可能会发生冲突。尝试将您的查询更改为

CREATE TABLE InTemp ([Month] DATE, [Description] TEXT(255), [Cost] DOUBLE, [Patron] TEXT(255))
Run Code Online (Sandbox Code Playgroud)

另外,据我所知,DATE这是特定于应用程序的类型,不一定是数据存储。我会使用实际的底层类型DATETIME(对于 也可以这样说TEXT)。

请参阅Microsoft Access 数据类型