C#中 ACCESS数据库常用操作语句...容易出错的地方(DateTime类型)
这次在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类型)的更多相关文章
- Mysql数据库常用操作语句大全
零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...
- Oracle 数据库常用操作语句大全
一.Oracle数据库操作 1.创建数据库 create database databasename 2.删除数据库 drop database dbname 3.备份数据库 完全 ...
- oracle数据库常用操作语句 、创建视图
新增字段:alter table 表名 add (NAME VARCHAR(12), NAME NUMBER(10) );--如果添加单个字段可以不用括号包起来,例如 alter table cust ...
- GP数据库 常用SQL语句
GP数据库 常用SQL语句 --1,查看列名以及类型 select upper(column_name) ,data_type from information_schema.columns wher ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- 记录Access数据库更新操作大坑一个
对于更新Access数据库的操作,必须保持参数数组与sql语句中参数顺序一致,如下: public bool Update(MyModel model) { StringBuilder strSql ...
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
- DBA必备:MySQL数据库常用操作和技巧
DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...
- Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...
随机推荐
- [SP16580]QTREE7
luogu vjudge 题意 一棵树,每个点初始有个点权和颜色(输入会给你) 0 u :询问所有u,v路径上的最大点权,要满足u,v路径上所有点的颜色都相同 1 u :反转u的颜色 2 u w :把 ...
- [Wc2009]shortest
传送门 终于把这题过了,了了我两年前写堵塞的交通一晚上无果的心结 因为是6要注意蛇皮走位啊!!这种-> S //Achen #include<bits/stdc++.h> #defi ...
- JvisualVm添加远程监控
一.Weblogic远程监控 1.首先需要在远程的weblogic的域下面,找到/bin/ setDomainEnv.sh ,需要在此文件下加入如下内容: -Dcom.sun.management.j ...
- 在linux里建立一个快捷方式,连接到另一个目录
ln -s 源目录 目标快捷方式比如要在/home/下面建立一个叫WIN7的快捷方式,指向/mnt/:ln -s /home/WIN7 /mnt
- [调试日志]用php函数var_export把多维数组file_put_contents写入并打印到日志,以方便调试之多维数组,用php5中的var_export函数示例,顺带介绍http_build_query(转)
一行解决写入日志: file_put_contents("/tmp/jack.txt", var_export($layReturnArr,TRUE),FILE_APPEND); ...
- POJ1456:Supermarket(并查集版)
浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html 题目传送门:http://poj.org/problem?id=1456 堆作法:https:/ ...
- 2.Linux下安装Jenkins
1.安装jenkins的前提是安装好jdk环境,自行安装jdk,若安装成功后,使用一下命令即可成功安装jenkins: wget -O /etc/yum.repos.d/jenkins.repo ht ...
- 编译使用CEF2623遇到的错误解决办法
https://cmake.org/download/win10的同学注意了按右键以管理员模式启动cmake-gui.exe在Where is the source code:里填上你解压的CEF3路 ...
- Azure ARM模式下VNet配置中需要注意的几点事项
虚拟网络的配置是所有公有云中非常重要的环节.把虚拟网络配置好,对整个系统的管理.维护,以及安全性都非常重要. 本文将介绍Azure在ARM模式下VNet配置中需要特别注意的几点. 一 Azure的VN ...
- 使用 acl 库针对 C++ 对象进行序列化及反序列编程
在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员).采用 XML.采用SOAP(坑人的设 ...