技术开发 频道

Enterprise Library 2.0:Data Access Application Block介绍


4、执行ExecuteReader方法返回一个IDataReader类型的数据集
       因为ExecuteReader方法在一开始执行时就打开了一个与数据库的连接,所以我们必须注意在使用结束时关闭连接,而用using(){}语句块就能确保ExecuteReader方法在执行完毕时关闭与数据库的连接。
       什么时候使用此方法:
 返回的数据仅仅用来显示,并不对其进行修改,删除等操作;  
 绑定返回的数据到WebForm Control
 不需要缓存返回的数据,用完就释放

        using (IDataReader reader = db.ExecuteReader(CommandType.Text, "select * from person"))
            
{
                DataGrid1.DataSource 
= reader;
                DataGrid1.DataBind();
            }

5、执行ExecuteDataSet方法返回一个DataSet
    

public DataSet GetPersonList()
        
{
            Database db 
= DatabaseFactory.CreateDatabase();
            DbCommand dbcomm 
= db.GetSqlStringCommand("select * from person");

            
return db.ExecuteDataSet(dbcomm);
        }

什么时候使用此方法:
    需要返回多表数据;
    如果你需要逐一访问数据库的每一条记录,这个时候如果使用DataReader的话,则会使与数据库的连接一直处于打开的状态,长此以往,就会使应用程序的性能和可伸缩性大大降低;
    需要和其他的应用程序交换数据;

6、执行ExecuteNonQuery
   该方法返回的是SQL语句执行影响的行数,我们可以利用该方法来执行一些没有返回值的操作(Insert,Update,Delete)

    public void AddPerson()
        
{
            Database db 
= DatabaseFactory.CreateDatabase();
            DbCommand dbcomm 
= db.GetSqlStringCommand("insert into person values(1,'shy','女','123456')");

            db.ExecuteNonQuery(dbcomm);
        }

7、执行ExecuteScalar返回单值

    public string GetPersonName()
        
{
            Database db 
= DatabaseFactory.CreateDatabase();
            DbCommand dbcomm 
= db.GetSqlStringCommand("select name from person");

            
return (string)db.ExecuteScalar(dbcomm);
        }
0
相关文章