【发布时间】:2017-05-09 03:56:13
【问题描述】:
我有以下语句,它在“From”子句中有语法错误,它有几个卷曲的表名。实际的数据库名称与表相同,因此它们都是独立的。
我打开一个到 SealRegister mdb 的连接,它是空的(还没有表),然后在语句上执行 ExecuteNonQuery。我认为这应该在 SealRegister.mdb 中创建表 SealRegister。
sqlcommand = @"Select ""Plant"" As Geometry, A.Asset_ID, B.RoadID, A.AssetType, B.RoadName, B.SegmentNo, C.AadtCount, C.CommVehCnt " +
@"Into [SealRegister] " +
@"From [C:\AR\Plant\Accounting\2015].ARPlntPA_2015_07-2016_06+10yrs As A " +
@"LEFT OUTER JOIN ([C:\AR\Lines\Accounting\2015].ARLnPA_2015_07-2016_06+10yrs As B " +
@"LEFT OUTER JOIN [C:\AR\Lines\TEMP].ARLnX As C On B.Asset_ID = C.Asset_ID) On A.Parent_ID = B.Asset_ID " +
@"WHERE AssetType = 'Wearing Course'";
我需要做什么来纠正语法
[编辑]
connStr = "提供者=Microsoft.ACE.OLEDB.12.0;数据 来源=C:\AR\TEMP\SealRegister.mdb"
【问题讨论】:
-
你有什么错误。您使用的是哪个驱动程序?
-
弹出上面的连接字符串
-
为什么使用特殊操作符作为数据库名称?可能您需要使用方括号来包装这些名称,例如:
FROM [C:\AR\Plant\Accounting\2015].[ARPlntPA_2015_07-2016_06+10yrs] AS A。-和+符号分别为 SQL 中的减号和加号运算符保留,因此您不能直接将其用作不带括号的表名。 -
什么是错误??访问如果我没记错你还需要在括号中嵌套连接:
select a from (t1 inner join t2 on ...) t3 inner join t4 on ...
标签: c# sql ms-access oledbconnection executenonquery