这次在C#编程过程中,第一次用到了ACCESS数据库,重点涉及到时间类型,整数类型。是否类型....;遇到了许多困难,就把这些整理了下来,与大家分享。

一、Insert语句的基本格式:

INSERT INTO Tablename[(column1name,[column2name, ...])]VALUES (value1, [value2, ...])

1.表的字段名称可能是数据库的保留字,这时需把这个字段名称用"[]"括起来,

保留字的情况:   INSERT INTO Employee([Name],id,dno)VALUES(’王强’,4007,3)

非保留字的情况:INSERT INTO Employee(name,id,dno)VALUES(’王强’,4007,3)

在这里,Name是数据库的关键字,name则不是。所以在写数据的时候你要避开保留字的情况

2.INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing',4007)在这里要注意要用到字符串形式(文本)的时候,要加上(‘)的注释,在编程语言中要加上转义字符\'

如果是整数的话,不用加引号,注意字段名是不需要加引号的

以下是最后的sql语句

string sql = "INSERT INTO Test ([DateTime],RawInformation)VALUES(\'" + dt.ToString() + "\',\'" + raw + "\')";

二、update语句的基本格式

UPDATE Tablename SET column1name = value1,[ column2name = value2, ...] [WHERE conditions]

1.在选择或者更新的时候SQL语句中where结构关于datetime的比较

最终的解决方案执行字符串为两种情况:

1.1string sql = "UPDATE [Test] SET [isinvaild]= \'" + issuccess + "\',[silk]=" + data[0] + ",[zone1]=" + data[1] + ",[zone2]=" + data[2] + ",[zone3]=" + data[3] + ",[zone4]=" + data[4] + " where [DateTime]=#" + dt + "#";

2.string sql = "UPDATE [Test] SET [isinvaild]= \'" + issuccess + "\',[silk]=" + data[0] + ",[zone1]=" + data[1] + ",[zone2]=" + data[2] + ",[zone3]=" + data[3] + ",[zone4]=" + data[4] + " where cstr(DateTime) =\'" + dt+"\'"

在这里主要到的是:

第一种情况:对于Access数据库时间格式需要在前后加上“#”号 来标注,第二是datetime还是要用到[]来标注起来

第二种情况:我们把字段DateTime中的记录转化成了字符串的形式跟所选择的时间进行比较

三、select语句的基本格式

SELECT column_name, [column_name,] ...FROM table_list/view_list

还是在选择的时候遇到时间的选取遇到的难题,比较最终的解决方案

1.选在某一时间段的数据记录

string sql = "select [DateTime],[silk],[zone1],[zone2],[zone3],[zone4] from [Test] where [DateTime] between#" + dateTimePicker_start.Value + "#and #" + dateTimePicker_end.Value + "#";

string sql = "select [DateTime],[silk],[zone1],[zone2],[zone3],[zone4] from [Test] where [DateTime]>#" + dateTimePicker_start.Value + "#AND [DateTime]<#" + dateTimePicker_end.Value+ "#";

上面两种方法都可以实现要求,最重要的突破点是:where语句后面不能将条件用双引号引起来,最重要的是在时间前后需要加上#符号

2.选择在某一时刻前的(或后的)的数据记录

string sql = "select [DateTime],[silk],[zone1],[zone2],[zone3],[zone4] from [Test] where [DateTime] >#" + dateTimePicker_start.Value + "#";
string sql = "select [DateTime],[silk],[zone1],[zone2],[zone3],[zone4] from [Test] where datediff(\'s\',[DateTime],#" + dateTimePicker_start.Value + "#)<0";

以上两种方法都可以行得通,后者只不过是将时刻的比较转化为了整数再比较,还是在提一句最大的就是要时间的前后加上#符号

ACCESS编程常出现的错误注意点:

1.在ACCESS表达式中,日期型常量应使用[] 为定界符括起来

2.保留字字段名最好用[]为定界符括起来

3.符号必须是在英文状态下的,尤其=<>等符号

4.SQL语法中,字符串变量必须使用单引号括起来

5. ACCESS关键字 http://www.cnblogs.com/whitewolf/archive/2010/09/09/1822350.html

6.DateDiff 函数返回变量型(长型),指定两个指定的日期之间的时间间隔数。

如有需要《SQL查询语言技术》电子手册,请留言

C#中 ACCESS数据库常用操作语句...容易出错的地方(DateTime类型)的更多相关文章

  1. Mysql数据库常用操作语句大全

    零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  2. Oracle 数据库常用操作语句大全

    一.Oracle数据库操作 1.创建数据库      create database databasename 2.删除数据库      drop database dbname 3.备份数据库 完全 ...

  3. oracle数据库常用操作语句 、创建视图

    新增字段:alter table 表名 add (NAME VARCHAR(12), NAME NUMBER(10) );--如果添加单个字段可以不用括号包起来,例如 alter table cust ...

  4. GP数据库 常用SQL语句

    GP数据库 常用SQL语句 --1,查看列名以及类型 select upper(column_name) ,data_type from information_schema.columns wher ...

  5. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  6. 记录Access数据库更新操作大坑一个

    对于更新Access数据库的操作,必须保持参数数组与sql语句中参数顺序一致,如下: public bool Update(MyModel model) { StringBuilder strSql ...

  7. mongodb常用操作语句

    mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...

  8. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  9. Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法

    Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...

随机推荐

  1. AtCoder Beginner Contest 087 B - Coins

    Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement You have A 500-yen coi ...

  2. 五、python沉淀之路--字典

    一. 1.根据序列,创建字典,并指定统一的值 v = dict.fromkeys(["],222) print(v) {': 222} 2.根据key 获取值,key不存在时,报错:get方 ...

  3. 自动化框架httpClient实例

    package com.auto.test.util; import java.net.SocketException;import java.net.SocketTimeoutException;i ...

  4. GMchess Linux下的中国象棋游戏

    gmchess,一款Linux下的中国象棋程序

  5. mysql之 xtrabackup原理、备份日志分析、备份信息获取

    一. xtrabackup备份恢复工作原理: extrabackup备份简要步骤 InnoDB引擎很大程度上与Oracle类似,使用redo,undo机制,XtraBackup在备份的时候,以read ...

  6. Azure CLI脚本查看未挂载的ManagedDisk

    本文介绍如何用Azure CLI的脚本查看未挂载的Managed Disk,以及Managed Disk挂载到哪些资源. 具体的脚本如下: #!/bin/bash rm -rf noownerdisk ...

  7. java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结

    java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time ...

  8. (转)NHibernate各种数据库配置写法

    本文转载自:http://blog.csdn.net/hsg77/article/details/23463733 //NHibernate各种数据库连接参数文件配置方法说明 //配置文件Config ...

  9. 1 ignite核心特性

    1 Ignite是什么? Apache Ignite是一个以内存为中心的分布式数据库.缓存和处理平台,支持事务.分析以及流式负载,可以在PB级数据上享有内存级的性能. 2 Ignite是不是内存数据库 ...

  10. [机器学习基础]矩阵基础和numpy

    矩阵定义:[摘自百度百科] 由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵.记作: 这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称 ...