黑马程序员--ADO.NET(六)

----------------------  ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------
 

ADO.NET架构可以分为两个基本类别:连接的和非连接的。
• 常用的连接类 
• Connection类表示与数据源之间的连接。
• Command类表示对数据库的查询、对存储过程的调用或返回特定表内 容的直接请求。
• DataReader类用于以最快的速度检索并检查查询所返回的行。
• Transaction类用于执行事务的类。 • DataAdaprer类连接类与非连接类的桥梁,从数据源填充DataSet并解 析更新。
• 常用的非连接类 
• DataTable类表在内存中的缓存。
• DataRow类DataTable对象中的所有记录。
• DataSet类数据库在内存中的缓存。不仅包含表,而且包含表之间的关 系、视图等。


SqlConnection类 与Microsoft SQL Server数据库进行通信的类 
– 创建连接字符串 连接字符串由一系列用分号隔开的名称-值对组成。
Data Source= .\SQLExpress;Initial Catalog=Northwind;Integrated Security=True 
使用连接字符串(SqlClient) Data Source 要连接的SQL Server实例的名称或网址。 Initial Catalog 指定要访问的数据库。 User ID和Password 登录数据库的用户名和密码。 Integrated Security 是否使用Windows验证用户登录。 
示例1: Data Source = .\SQLExpress;Initial Catalog = Northwind;User ID = sa;Password = 123; 
示例2: Data Source = .\SQLExpress;Initial Catalog = pubs;Integrated Security = True; 
– 生成SqlConnection对象; 
String connectionString= @“Data Source = .\SQLExpress;…”; 
SqlConnection connection = new SqlConnection(connectionString); 
– 打开SqlConnection对象
connection.Open();



 SqlCommand类 用于执行查询的类。
– SqlCommand常用的方法 
• ExecuteReader() 将查询结果返回到SqlDataReader对象中; 
DataReader一直和数据库保持连接,直到被显式关闭; 
使用Command对象而不是DataAdapter对象来创建DataReader对象;
string CommandText = "select * from PHOTO_ALBUMS"; SqlCommand cmd = new SqlCommand(CommandText, connection); cmd.Connection.Open(); //打开连接; SqlDataReader sdr = cmd.ExecuteReader(); 
• ExecuteScalar() 执行查询,并返回查询结果集中的第一行第一列; 注意:ExecuteScalar 一般返回一个Object类型,因此要进行类型转换。 
string CommandText = "select count(*) from PHOTO_ALBUMS"; SqlCommand command = new SqlCommand(CommandText, connection); command.Connection.Open(); //打开连接; string NoOne = (int)command.ExecuteScalar(); 
• ExecuteNonQuery() 用来执行INSERT、UPDATE、DELETE和其他没有返回值的SQL命令; 当使用INSERT、UPDATE、DELETE时,ExecuteNonQuery返回被命令影响的行数。对所 有其他命令,返回-1。
string CommandText = "insert into PHOTO_ALBUMS(ALBUMNAME,DESCRIPTION,BUILDDATE) values('海南风景','好美呀! ','" + DateTime.Now + "')“; SqlCommand cmd = new SqlCommand(CommandText, connection); cmd.Connection.Open(); //打开连接; int RownumEffect = cmd.ExecuteNonQuery();

DataSet  DataReader 的区别

DataSet 

1. 创建数据库连接
2. 在DataAdapter中保存查 询 
3. 使用Fill方法填充DataSet 
4. 创建数据视图 
5. 把数据视图绑定到列表绑 定控件 

DataReader 

1. 创建数据库连接 
2. 打开数据库连接 
3. 在SqlCommand中保存查询 
4. 使用ExecuteReader方法填充 DataReader 
5. 为每条记录调用Read 方法, 调用 Get方法取得字段
6. 手工显示数据 
7. 关闭DataReader 和连接 


使用ADO.NET访问数据库 
 
using   System ;  
using   System . Data ;  
using   System . Configuration ;  
using   System . Web ;  
using   System . Web . Security ;  
using   System . Web . UI ;  
using   System . Web . UI . WebControls ;  
using   System . Web . UI . WebControls . WebParts ;  
using   System . Web . UI . HtmlControls ;  
using   System . Data . SqlClient ;
public   partial   class   _Default   :   System . Web . UI . Page  
{  
     protected   void   Page_Load ( object   sender ,   EventArgs   e )  
     {          
     }  
     protected   void   Button1_Click ( object   sender ,   EventArgs   e )  
     {  
          string   connectionString   =   @" Data Source=.\sqlexpress;Initial Catalog=demo;Integrated Security=True " ;  
          SqlConnection   connection   =   new   SqlConnection ( ) ;  
          connection . ConnectionString   =   connectionString ;  
          string   CommandText   =   " select * from Employee where LoginName =' "   +   TBUsername . Text   +   " ' " ;  
          SqlCommand   cmd   =   new   SqlCommand ( CommandText ,   connection ) ;
          try
          {
          cmd . Connection . Open ( ) ;   //
          SqlDataReader   sdr   =   cmd . ExecuteReader ( ) ;  
          while   ( sdr . Read ( )) // 
          {  
               string   UserName   =   sdr [ " LoginName " ] . ToString ( ) ;  
               tring   Password   =   sdr [ " Password " ] . ToString ( ) ;  
               string   Password0   =   TBPassword . Text ;
               if   ( Password   ==   Password0 )
               {  
                    Session [ " uid " ]   =   UserName ;
                    Session [ " name " ]   =   TBPassword . Text ;  
                    Response . Redirect ( " index.aspx " ) ;  
               }  
               else  
               {  
                    Response . Redirect ( " login.aspx " ) ;
               }  
          }  
               sdr . Close ( ) ;
          }  
          catch   ( Exception   ex ) // 
          {  
               Console . WriteLine ( ex . Message ) ;  
          }
     }
}
 

----------------------  ASP.Net+Android+IOS开发 .Net培训 、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值