打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#access数据库查询操作(一)

在前面,介绍了数据库的连接操作。数据库有增,删,改,查等操作,但在实际数据库的应用过程中,查询实际上是应用的最多的一种对数据库的操作方式。
1.首先要说一个问题就是,在数据库的定义过程中,表里的字段的数据类型强烈建议按照数据类型定义,比如access里有一个字段为年龄,本来可以定义为int数据类型,这是最好的,当然定义成文本类型也可以用,但非常不建议这样做,这样在实际编码过程中会遇到一些很烦的问题,我就亲身经历过,明明是数字类型,数据库的提供方偏要弄成文本类型,造成了很多的困扰,在自己设计数据库的过程中,强烈建议按照数据类型来定义。
2.定义数据库变量

OleDbDataAdapter oleDapAdapter; //检索与填充数据,一般填充SQL语句 
DataSet ds = new DataSet();     //填充ds,保存数据 
调试的时候可以把光标放在ds上面,点击放大镜查看ds里的数据。
3.全查询,假设数据库中有名为dictionary的表
SQL语句 select * from 表名
oleDapAdapter = new OleDbDataAdapter("select * from dictionary", conn);
oleDapAdapter.Fill(ds);ds里面就是填充的数据,查询完后往往需要遍历,ds中的行就是数据库的行,数据库的行数为ds.Tables[0].Rows.Count,ds中的列就是数据库的列,数据库的列数为ds.Tables[0].Columns.Count。

遍历所有元素

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
         for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
         {
               MessageBox.Show(ds.Tables[0].Rows[i]["字段名称"].ToString());//需要转成String类型 
         }
}ds.Reset(); //清除查询记录,因为查询的记录保存在ds中,如果不清空,则ds中的记录会带入下一次的查询中,进行任何查询后,再操作数据库后需要清空ds,避免累积.

4.查询某一字段或者某些字段所有值
(1)SQL语句 select  字段名 from 表名
oleDapAdapter = new OleDbDataAdapter("select NumValue from dictionary ", conn);  //查询dictionary表中的NumValue字段
oleDapAdapter.Fill(ds);
(2)SQL语句 select  字段名1,字段名2,... from 表名

oleDapAdapter = new OleDbDataAdapter("select NumValue1,NumValue2... from dictionary ", conn);  //查询dictionary表中的NumValue字段
oleDapAdapter.Fill(ds);
5.条件查询
(1)条件为一个确定的值查询
SQL语句 select  * from 表名 where 字段名=XXX;
这里就要注意数据类型是文本还是数字了,如果是数字则不需要加引号,如果是文本则需要加上引号!!。
如果数据类型是数字,则:

oleDapAdapter = new OleDbDataAdapter("select * from dictionary where NumValue =1", conn); //1不加引号
oleDapAdapter.Fill(ds);如果数据类型是文本,则:


oleDapAdapter = new OleDbDataAdapter("select * from dictionary where NumValue ='1'", conn); //1加上引号
oleDapAdapter.Fill(ds);

查询某一字段只用把*改成字段名即可,这里不再赘述。
(2)条件范围查询,范围查询往往查询的字段为数字类型
SQL语句select  * from 表名 where 字段名 between num1 and num2; 查询num1和num2之间的数据,

oleDapAdapter = new OleDbDataAdapter("select * from dictionary where month between 1 and 4"conn);
oleDapAdapter.Fill(ds);


上述语句查询了1,2,3,4月的数据

注意如果month为文本,写成这样的话

oleDapAdapter = new OleDbDataAdapter("select * from dictionary where month between '1' and '4'", conn);
oleDapAdapter.Fill(ds);如果数据库里有11,12月的数据,那么查询的是1,11,12,2,3,4月的数据了,因为在字符比较里11是小于2的,这里要注意,所以前面说了一定要严格按照数据类型来设计,否则有可能产生意外的结果。
6.求和
在实际过程中,求和使用的挺广泛的


oleDapAdapter = new OleDbDataAdapter("select SUM(NumValue) from dictionary where monthValue between 1 and 3", conn);
oleDapAdapter.Fill(ds);查询1到3之间的和,可以把monthValue改成其他值
---------------------
作者:pengshupan
来源:CSDN
原文:https://blog.csdn.net/pengshupan/article/details/51201297
版权声明:本文为博主原创文章,转载请附上博文链接!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
.net实例:使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
Access教程 第二章 建立数据库
表的设计命名的十个注意点 - NetSQL - 博客园
C#对Access数据库的操作
ADO.NET中的五个主要对象 - 激情 希望 斗志昂扬 - 博客园
如何用OleDbDataAdapter来对数据库进行操作?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服