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的保留名称,不能用作字段的名称,原来是这么回事。看来不能光只会用了,得多了解一下相关的数据库的保留字段,要不以后遇到保留字段作为名称的时候就会摸不着头脑了。
在此,把自己的一些体会跟大家分享一下!
相关文档:
项目中用到了此功能。把大概做法跟大家共享下,希望对大家有所帮助。也给自己总结一下,激励自己再接再厉。下面中部分代码被汉字替换了,主要考虑到公司的产品权,希望谅解。
/// <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
{
......
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
{
......
抛弃MS Access吧,请使用SQLite
1、SQLite简介
SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3. SQLite官方网站: http://www.sqlite.org/
2、SQLite类型
SQLite的数据类型
首先你会接触到一个让你惊讶的名词: Typelessness(无类型). 对! SQLite是无 ......
1:在StaAfx.h 中添加如下代码 #import "C:\\Program Files\\Common Files \\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")
2:在BOOL CXXXApp::InitInstance()中初始化COM环境
::CoInitialize(NULL);
释放COM环境
::CoUninitialize();
......