access查询mysql数据库_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

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值