黑马程序员--ADO.NET中的常用类

来源:互联网 发布:时间戳java显示gmt时间 编辑:程序博客网 时间:2024/05/24 23:14

---------------------- Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------

此处假设用的是MS SQL SERVER数据库。

1.Connection类:

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

string stringCon = “Data Source=127.0.0.1;Initial Catalog=数据库名;Integrated Security=True”;

Data Source 就是服务器名
Initial Catalog就是你想链接的数据库,
Integrated Security = True,表示是windows 账号登录SQL Server,
否则则需要在连接字符串里面写明登录数据库的账号和密码:
string stringCon = “Data Source=127.0.0.1;Initial Catalog=数据库名;User ID=sa;Password=itheima”

在开发过程中,经常要修改连接字符串,所以我们可以把连接字符串保存到Web.config文件里面,这样就可以方便修改,使用Web.config文件里面的<connectionStrings>节就可以实现这个功能:

< connectionStrings >
<add name = “ConnectionString” connectionString = "Data Source=127.0.0.1;Initial Catalog=数据库名;User ID=sa;Password=itheima”"/>
</connectionStrings >

如果要使用时,只需

string stringCon = ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString;
这样就可以取出连接字符串。

刚开始自己写连接字符串可能比较麻烦,这里有个小技巧,就是可以利用VS的可视化工具“连接到数据库”,利用它我们只要填入服务器名,账号,密码,它就就帮我们测试连接,生成连接字符串,复制粘贴到需要的地方就OK 了。
SqlConnection 类是继承自Connection类,用于SQL Server 数据源。
具体使用如下:
SqlConnection con = new SqlConnection(stringCon);
打开和关闭连接则很简单:
con.open();
con.close();
在开发项目是,应该尽可能晚的打开连接,就是在打开数据库连接之前尽可能的完成准备工作,不要连接后才开始准备,因为数据库连接是服务器上最宝贵的资源,同样的道理,用完后也要尽可能早地关闭连接。

 

2. 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=127.0.0.1;Initial Catalog=数据库名;User ID=sa;Password=itheima”;
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对象。

ExecuteNonQuery :执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令。
ExecuteScalar :从数据库中检索单个值(例如一个聚合值)。
ExecuteReader :执行返回行的命令。

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

SqlDataReader dr = comm.ExecuteReader ();
While(dr.Read())
{
……
}

 

3.DataReader类

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

具体的使用跟ExecuteReader()方法使用一样,这里综合前面的常用类,写了一个小实验:
     class Program
    {
        static void Main(string[] args)
        {
            SqlConnection cn = new SqlConnection(" Data Source=127.0.0.1;Initial Catalog=数据库名;User ID=sa;Password=itheima ");
            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"]);
            }
        }

实验结果:

1         38889676       黑马
2         99999999       白马
3         00000000       小马

请按任意键继续. . .

 

4.DataSet类

ADO.NET的核心是DataSet类,它可以表示整个数据库或者非连接的部分数据库,它是数据库里面的表,关系,约束的集合。
5.DataAdapter类
DataAdapter类的作用是提取填入DataSet中的记录,它是DataSet与数据库源交互的工具,常用的方法有两个,Fill()和Update(),作用一看名字就知道了。
String sqlString = “SELECT * FROM User”;
string stringCon = “Data Source=127.0.0.1;Initial Catalog=数据库名;User ID=sa;Password=itheima ”;
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会自动打开和关闭连接。

---------------------- Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------

原创粉丝点击