C# 学习笔记 -- 第七天 连接到数据源

       用过ADO编程的人都非常熟悉,其中的几个主要对象。例如:connect,command,recordset,parameter等。那么到了ADO.Net时代,微软给我们带来了哪些变化呢?我认为关键就是数据适配器Adapter和DataSet。DataSet就好比一个在内存中的数据库,可以在其中自定义表以及表之间的各种关系(比如约束),这些功能以前通常都是由数据提供的。而Adapter和他的名字很相配,他将对DataSet中各个表格的各类操作通过connect与数据源有机的连接起来。从而实现了将数据由数据源读取到内存,断开连接,修改数据,最后连接更新数据源等这些对数据库的操作。有效的提高了对数据源资源的访问。

       要使用ADO.Net需要在自己的项目中添加对System.Data的引用。

       System.Data名称空间下常用对象有:

              DataSet、DataTable、DataRow、DataView、DataColumn

       System.Data.OleDb名称空间下常用对象有:

              OleDbConnection、OleDbCommand、OleDbParameter、OleDbDataAdapter、OleDbDataReader

       System.Data.SqlClient名称空间下常用对象有:

              SqlConnection、SqlCommand、SqlParamenter、SqlDataAdapter、SqlDataReader

 

       下面就举一个简单的例子,看是如何连接到SQL数据库,并读取数据的。

       System.Data.DataSet ds = new System.Data.DataSet();
       System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection();
       System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
       System.Data.SqlClient.SqlAdapter adp = new System.Data.SqlClient.SqlAdapter ();
       System.Data.DataTable dt = new System.Data.DataTable();

       // 使用Windows身份认证连接字符串
       cnn.ConnectString = "integrated security=SSPI;workstation id=.;packet size=4096;persist security info=False;initial catalog=DataBase";
       // 使用SQL认证连接字符串
       cnn.ConnectString ="workstation id=.;packet size=4096;user id=sa;password=****;persist security info=False;initial catalog=reportdb"

       // 检查连接字符串
       try
       {
              cnn.Open();
       }catch (Exception ex)
       {
              // 处理异常
       }
       finally
       {
              cnn.Close();
       }

       // 读取并显示数据
       cmd.Connection = cnn;
       cmd.CommandText = "select 用户,类型 from [user]";
       adp.SelectCommand = cmd;
       adp.Fill(ds,"User");
       dt = ds.Tables["User"];
       foreach(DataRow dr in dt.Rows)
       {
              Console.WriteLine(dr["用户"].ToString());
              Console.WriteLine(dr["类型"].ToString());
       }

注意:这里读取并显示数据的代码同我们用ADO的代码有很大的差别,主要原因是以前有很多事情都已经由Adapter帮我们处理了,这里我们只需要告诉Adapter我们使用的SelectCommand是哪一个cmd对象,告诉cmd他要调用的数据库连接是哪一个,以及他的SQL命令是什么,那么要读取数据的时候,只需要使用Adapter的Fill功能,就可以将读取到的结果在DataSet对象中创建一个结果集的表。然后通过DataTable对象dt将结果集引用出来,最后使用foreach循环遍历结果集中的每一行。那么在这个过程中和是连接到数据源何时断开,如何同步等等问题都交给Adapter了。所以代码可以简化很多,从而提高开发效率。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值