易截截图软件、单文件、免安装、纯绿色、仅160KB

Access Insert Into 语法错误 集锦(不断更新中...)

最近在做Access的一个项目,总是莫名其妙的提示:“Insert Into 语法错误”,这样的信息总给人带来很多麻烦,有时候为了这样一个错误要找好久才能解决问题,"Insert Into 语法错误"这个提示本身包含的信息量很少,在跟踪堆栈中有找不到更详细的信息,为了避免大家在开发的过程中遇到同样的错误和困扰。通过查找和摸索把有可能出现这种错误的可能总结一下和大家一起分享。
1.关键字:如果你的数据库的表的设计包含了Access包含的关键字,则在插入的时候会出现“Insert Into 语法错误”
例如:
string sqlText = String.Format("Insert into TestTable(Id,Order) values ({0},{1})",123,0);
这行上面这条语句是失败的,原因是TestTable表中有一个关键字"Order",解决办法:
(1).将语句中的关键字用[order]处理就可以了。如:
string sqlText = String.Format("Insert into TestTable(TestId,[Order]) values ({0},{1})",123,0);
(2).将所有的字段都用[]括起来,这在许多代码生成器中都采用这种方式来解决关键字的冲突问题。如:
string sqlText = String.Format("Insert into TestTable([Id],[Order]) values ({0},{1})",123,0);
(3).在设计数据库的时候尽量避免使用Access本身的保留字。这样就不会出现应为关键字问题引起的错误了,这也是最佳的解决方法。
2.文本类型:字符类型引起的“Insert Into 语法错误”,通常是因为数据库设计的时候字段是字符型的,结果在Insert into 的时候字段值没有加''引起的。
例如:
string sqlText = String.Format("Insert into TestTable(TestId,TestName) values ({0},{1})",123,”cnblogs");
说明:
Test 是数字型字段,TestName 是文本型字段
上面的操作会出现:“Insert Into 语法错误”
解决方法:在操作的时候给 Name字段的值加上''可解决问题,如:
string sqlText = String.Format("Insert into TestTable(TestId,TestName) values ({0},‘{1}’)",123,”cnblogs");
3.备注类型:备注类型的字段和文本字段一样,碰到问题,可以用同样的方法解决
4.日期/时间类型:日期/时间类型的字段和文本字段一样,碰到问题可以用同样的解决方法


相关文档:

架构B/S四 DALFactory 数据访问层 Data Access Layer

2008-04-10 09:45 //*******FactoryManage.cs using System;
using System.Reflection;
using System.Configuration;
using CoalTraffic.IDAL; namespace CoalTraffic.DALFactory
{
    /// <summary>
    /// 抽象工厂模式创建DAL。
   ......

C#连接Access数据时总报找不到dbo.mdb的问题

今天用OleDb连接Access时总报找不到dbo.mdb的问题。可是我的连接字符串中明明写着local.mdb。单步跟踪调试发现Connection中的连接字符串也是”Provider=Microsoft.Jet.OLEDB.4.0; Data Source=local.mdb;”,根本没有dbo.mdb的事。后来查过排查发现是schema的问题。SQL Server中有schema的概念所以我们一般都习惯 ......

什么是Access数据库

 Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。   
表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名MDB。    ......

vmware web access无法访问

现象:
ESX的WEB访问默认是关闭的,网上很多文章都说使用chkconfig vmware-webAccess on来让服务自动开启,不过这样操作之后重启机器,WEB访问还是还会出503无法访问错误,ESX不知道为什么会自动把vmware-webAccess 给禁用掉。
解决方法:
经过无数次尝试之后发现了解决方法,命令如下:
cd /etc/init.d
cp vmware-web ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号