Access无法使用time作为字段名称
这几天帮同学做一个小的管理系统,B/S结构的,由于很久没有做B/S结构的东西了,做的时候很生疏。一个下午,遇到了一个问题:往Access里插入数据的时候,老是提示我sql语句错误,但是就很纳闷了,这种sql语句写了不下500遍了吧,就算是做梦也不会写错的,怎么回事?sql语句是这样的:insert into consume(mid,startTime,endTime,time,status,check) values(?,?,?,?,?,?);
一直试了很多次,但是都没有执行成功,但是就死心眼了,总是不相信自己写的sql语句有问题,但是都无果。后来冷静了之后,就把字段一个个的删除,再一个个的调试,之前的三个字段都可以插入数据,但是调试time字段的时候,就是不成功,之前用mysql或是oracle的时候都没有遇到过这种问题,就很纳闷了。都是没有成功,就把字段换了,把time改成consumeTime,这次执行好使了,可以插入数据了,又把字段换回原来的名称,又不行了,上网查了一下,才知道,time是access的保留名称,不能用作字段的名称,原来是这么回事。看来不能光只会用了,得多了解一下相关的数据库的保留字段,要不以后遇到保留字段作为名称的时候就会摸不着头脑了。
在此,把自己的一些体会跟大家分享一下!
相关文档:
一、创建一张空表:
Sql="Create TABLE [表名]"
二、创建一张有字段的表:
Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))
字段类型:
2 : "SmallInt", // 整型
3 : "Int", ......
最近系统运行中发现Access 2003 版本中对待 Null 和 ‘’ (空字符)奇怪问题,重现步骤:
1、创建表tabTest ;
2、使用设计视图添加两个字段 ID ,col1
名称
类型
长度
说明
ID
Number
主键,自增
Col1
char
1
无
3、使用sql 添加如下数据
-- col1 字段设置为 null
INS ......
public static DataTable GetSchemaTable(string connectionString) //获取Access所有的表名;
{
using (OleDbConnection connection = new
&n ......
项目中用到了此功能。把大概做法跟大家共享下,希望对大家有所帮助。也给自己总结一下,激励自己再接再厉。下面中部分代码被汉字替换了,主要考虑到公司的产品权,希望谅解。
/// <summary>
  ......
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;
using Microsoft.Win32;
using Access = Microsoft.Office.Interop.Access;
namespace ImageAccess
{
static class Program
{
......