silver

前途迷茫。。。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
东西都收好了,电脑都打包了,本来想回家再写这篇技术日志的,但闲着没事做就用笔纸打了草稿,然后跟室友借了电脑,把文章给写了,只能写这么多了,要去赶车了。算是大一最后一篇技术日志。
因为时间比较赶,没有VS测试,随手写代码,所以可能有些地方有问题,回家继续把文章写完。
 
ADO.NET 是一中数据编程技术,说简单点就可以用来连接操作数据源,操作的对象可以使数据库,XML文件,存储区域网。


 1.DataSet类
ADO.NET的核心是DataSet类,它可以表示整个数据库或者非连接的部分数据库,它是数据库里面的表,关系,约束的集合。
 

 
2.Connection类

 
连接数据库要用到Connection类和连接字符串,连接字符串的格式如下:

string stringCon =
“Data Source=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;Integrated Security=True”;

Data Source 就是服务器名
Initial Catalog就是你想链接的数据库,
Integrated Security = True,表示是windows 账号登录SQL Server,
否则则需要在连接字符串里面写明登录数据库的账号和密码:
string stringCon =
“Data Source=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;User ID=sa;Password=119119”
 
在开发过程中,经常要修改连接字符串,所以我们可以把连接字符串保存到Web.config文件里面,这样就可以方便修改,使用Web.config文件里面的<connectionStrings>节就可以实现这个功能:
 
< connectionStrings >
 
<add name = “AW” connectionString =
“Data Source=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;Integrated Security=True”; />
 
</connectionStrings >
 
如果要使用时,只需string stringCon =
WebConfigurationManager.ConnectionStrings[“AW”].ConnectionString;
这样就可以取出连接字符串。

刚开始自己写连接字符串可能比较麻烦,这里有个小技巧,就是可以利用VS的可视化工具“连接到数据库”,利用它我们只要填入服务器名,账号,密码,它就就帮我们测试连接,生成连接字符串,复制粘贴到需要的地方就OK 了。
 

SqlConnection 类是继承自Connection类,用于SQL Server 数据源。
具体使用如下:
SqlConnection con = new SqlConnection(stringCon);
 
打开和关闭连接则很简单:
con.open();
con.close();
在开发项目是,应该尽可能晚的打开连接,就是在打开数据库连接之前尽可能的完成准备工作,不要连接后才开始准备,因为数据库连接是服务器上最宝贵的资源,同样的道理,用完后也要尽可能早地关闭连接。
 
 
 



3. Command 类
 
Command 类有3个属性,分别是CommandType,CommandText,Connection
 
CommandType 是指命令类型,它有2个比较常用的枚举值。
 
CommandType.Text,指明Command的命令是SQL查询语句,它是CommandType的默认值,
CommandType.StoreProcedure指明Command的命令是存储过程。

 

 
创建一个Command 对象:

String sqlString = “SELECT * FROM User”;
 
string stringCon =
“Data Source=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;Integrated Security=True”;
 
SqlConnection con = new SqlConnection(stringCon);
 
SqlCommand cmd = new SqlCommand(sqlString,con);

这就创建了一个SQL查询语句的命令对象,因为CommandType的默认值是CommandType.Text,所以我们不用指明。

但如果用的是存储过程则需要指明:
 
连接字符串和Connection对象同上,
 
String storeProcedure = “Sel_User”;
SqlCommand cmd = new SqlCommand(storeProcedure,con);
 
cmd. CommandType = CommandType.StoreProcedure;


这时只是创建了一个Command对象而已,它还没有执行。Command类有3个比较常用的的方法,用于执行Command对象。
 
EndExecuteNonQuery :执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令。
 
ExecuteScalar :从数据库中检索单个值(例如一个聚合值)。
 
ExecuteReader :执行返回行的命令。

 
方法说明都是MSDN的,前两个不难理解。
第3个百度了一下,ExecuteReader() 方法需要配合 SqlDataReader 对象使用,执行得到的数据集为只读且光标只能从前向后移动。
 
它可以这样用:
 
SqlDataReader dr = comm.ExecuteReader ();
While(dr.Read())
{
……
}

 



4.DataReader类

 

DataReader类提供最简单的数据读取方法,只前不退,每次只读取查询语句返回的记录,直到记录为空或查询到所需要的记录。

 
具体的使用跟ExecuteReader()方法使用一样,这里综合前面的常用类,写了一个小实验:

 


     class Program
    {
        static void Main(string[] args)
        {
            SqlConnection cn = new SqlConnection("

            DataSource=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;User ID=sa;Password=119119");
            SqlCommand cmd = new SqlCommand("select * from [User]", cn);
            cn.Open();
            SqlDataReader sr = cmd.ExecuteReader();
            while(sr.Read())
            {
                Console.WriteLine(sr["UserID"] + "\t\t" + sr["QQ"] + "\t" + sr["RealName"]);
            }
        }

 

实验结果:

 

Sean            179816313       斯霖
silin           224000232       霖
zplutor         76590449        余晓村
请按任意键继续. . .

 


 


5.DataAdapter类

DataAdapter类的作用是提取填入DataSet中的记录,它是DataSet与数据库源交互的工具,常用的方法有两个,Fill()和Update(),作用一看名字就知道了。
String sqlString = “SELECT * FROM User”;
 
string stringCon =
“Data Source=20090503-2108;Initial Catalog=DOF_Work_Site_Test_DataBase;Integrated Security=True”;
 
SqlConnection con = new SqlConnection(stringCon);
SqlDataAdapter da = new SqlDataAdapter(sqlString, con); //需要2个参数SQL查询语句和connection对象。

DataSet ds = new DataSet();
da.Fill(ds,”User”);

值得注意的是,这里可以不用Connection.Open()方法来打开连接,因为当调用Fill()方法时,DataAdapter会自动打开和关闭连接。

 

 

 

posted on 2009-07-26 02:03  silverVan  阅读(1078)  评论(0)    收藏  举报