自学C#—ADO.NET(一)

这篇文章比较适合初学者来看。

首先来讲一下C#中的ADO.NET到底是个什么?

  在C#的ADO.NET是用来使C#程序和数据库交互的一项技术,就相当于一个往来于程序和数据库之间的运货车。由“程序”工厂出发到指定地址的“数据库”仓库去拉货回到“程序”工厂加工,或者把“程序”工厂加工好的数据拉到“数据库”仓库储存起来。下面我们就一起看看这个货物是怎么运输的:

(一)我们去工厂拉货首先需要一个车

  首先我们需要找一辆车,这个很简单,我们创建SqlDataReader、DataTable、DataSet都可以当做这个车,但是不同的是这几个对象拿回的数据方式不太一样。

  SqlDataReader:这个就相当于逐个货架往回拉货,获取到的数据是一行一行的数据。

  DataTable:这个相当于按整个库房往回拉货,获取到的数据是一个数据表。

  DataSet:这个就厉害了,这个可以拉N个库房的货,获取到的数据是N个(这个N是sql语句查询结果中表的个数)数据表。

  这三个对象用起来都差不多,我一般情况下都是用DataTable,因为DataTable相比较来说用起来比较方便,但是约定俗成是按需要用合适的对象。

(二)现在我们需要一份拉货的地址

  我们首先引用System.Data.SqlClient;这个命名空间,然后创建一个SqlConnection对象,就像这样:

1     class Program
2     {
3         static void Main(string[] args)
4         {
5             SqlConnection conn = new SqlConnection("server=.;database=Demo;uid=sa;pwd=123456");
6         }
7     }

  这里是通过调用了SqlConnection的有参构造函数创建了一个拉货地址单。括号中的参数是数据库连接字符串,这个如果不清楚怎么写,请自行百度。

(三)到达了仓库门口,现在我们需要打开仓库大门,打开仓库门需要调用conn.Open();方法,打开大门后我们需要一份需要拉取的货物清单

  我们这时需要创建SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction", conn);

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SqlConnection conn = new SqlConnection("server=.;database=Demo;uid=sa;pwd=123456");
 6             conn.Open();
 7             SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction", conn);
 8 
 9         }
10     }

  这里我们依然通过SqlCommand的有参构造函数创建了货物清单。

  第一个参数是sql语句,是用来告诉数据库仓库车应该拉什么货物、哪些货物。

  第二个参数是SqlConnection对象,相当于告诉仓库车是受委托到这个地方的哪个仓库,拉取哪个库房的哪些个数据。

(四)现在我们就可以装车了,但现在有个问题,我们是用DataTable来获取数据,但是数据库给我们的是DataReader的数据,所以我们要申请数据库把DataReader整理成DataTable数据给我们。

  我们这时需要创建SqlDataAdapter sda = new SqlDataAdapter(cmd);

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SqlConnection conn = new SqlConnection("server=.;database=Demo;uid=sa;pwd=123456");
 6             conn.Open();
 7             SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction", conn);
 8             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 9             
10             
11         }
12     }

  我们依然通过SqlDataAdapter的有参构造函数提出了我们的申请。括号中的参数是cmd对象。

(五)现在我们可以货物装车了

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SqlConnection conn = new SqlConnection("server=.;database=Demo;uid=sa;pwd=123456");
 6             conn.Open();
 7             SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction", conn);
 8             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 9             
10             DataTable dt = new DataTable();
11             sda.Fill(dt);
12 
13 
14         }
15     }

(六)装车之后我们就可以关闭库房门,关闭数据库门了


 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SqlConnection conn = new SqlConnection("server=.;database=Demo;uid=sa;pwd=123456");
 6             conn.Open();
 7             SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction", conn);
 8             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 9             
10             DataTable dt = new DataTable();
11             sda.Fill(dt);
12 
13             sda.Dispose();
14             cmd.Dispose();
15 
16             conn.Close();
17         }
18     }

  sda.Dispose();cmd.Dispose();这个是关闭库房门,conn.Close();这个是关闭数据库门。

(七)现在我们的数据就已经拿到DataTable里了,这样ado.net的简单查询就完成了,下次我们讲怎么用车向“数据库”仓库中存数据。

自学C#—ADO.NET(一)

上一篇:centos下U盘重装windows


下一篇:c# attribute