技术开发 频道

Enterprise Library 2.0:Data Access Application Block介绍


最后点 File-->Save All,这样就完成了一个数据库的配置。生成的配置文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  
<configSections>
    
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
  
</configSections>
  
<dataConfiguration defaultDatabase="Connection String" />
  
<connectionStrings>
    
<add name="Connection String" connectionString="Database=EnterpriseLibrary;Server=shy;Integrated Security=SSPI;uid=sa;pwd=;"
      providerName
="System.Data.SqlClient" />
  
</connectionStrings>
</configuration>

在其中的ConnectionStrings节里我们可以看到我们刚刚配置时输入的数据库信息。

       下面我们重点来说一下DataAccess Application Block操作数据库的方法。
1、创建一个数据库实例DataBase

        //创建一个默认的数据库实例
            Database defaultdb = DatabaseFactory.CreateDatabase();
            
//创建一个名为Connection String的数据库实例
            Database db = DatabaseFactory.CreateDatabase("Connection String");
            
//上面两种创建数据库实例的方法的数据库可以是任何类型的数据库,取决于Config文件中的配置信息
            
//下面的这种方面展示了创建一个SQL数据库的实例,需引用Microsoft.Practices.EnterpriseLibrary.Data.Sql程序集
            SqlDatabase dbsql = DatabaseFactory.CreateDatabase("Connection String"as SqlDatabase;
            
//我们同样也可以不通过配置文件来创建数据库实例,如下
            string connString = "server=.;database=EnterpriseLibrary;uid=sa;pwd=";
            SqlDatabase nocofigdb 
= new SqlDatabase(connString);

2、创建DbCommand
      DbCommand的创建方式有两种:一种是为了调用存储过程创建,一种是为了执行一般的SQL语句而创建,具体用哪一种方式,就要看你需要执行的是存储过程还是SQL语句了。

        //创建一个SQL语句的DbCommand
            Database db = DatabaseFactory.CreateDatabase();
            
string sql = "Select * from person";
            DbCommand Sqldbcomm 
= db.GetSqlStringCommand(sql);
            
//创建一个存储过程的DbCommand
            
//存储过程名称为GetAllPersonByName
            string procName = "GetAllPersonByName";
            DbCommand Procdbcomm 
= db.GetStoredProcCommand(procName);

3、存储过程中的参数处理
DataBase类中包含多种传递存储过程参数的方法,也包含了得到和设置参数值的方法,如下:
AddParameter. 为存储过程传递一个参数(输入型或输出型)
AddInParameter. 为存储过程传递一个输入型参数
AddOutParameter. 为存储过程传递一个输出型参数
GetParameterValue. 获取某存储过程指定参数的值
SetParameterValue. 为存储过程的某个参数赋值,当你需要用同一个方法来执行插入多条记录时,就可参数给参数赋值的方法来进行

//创建一个存储过程的DbCommand
            
//存储过程名称为GetAllPersonByName
            string procName = "GetAllPersonByName";
            DbCommand Procdbcomm 
= db.GetStoredProcCommand(procName);

            
//添加一个输入型的参数
            db.AddInParameter(Procdbcomm, "@sex", DbType.String);
            
//添加一个输出型的参数
            db.AddOutParameter(Procdbcomm, "@name", DbType.String,20);
            
//设置参数的值
            db.SetParameterValue(Procdbcomm, "@sex""");

            
//执行存储过程
            db.ExecuteNonQuery(Procdbcomm);

            
//得到输出参数的值,注意转化返回值类型
            string outvalue = (string) db.GetParameterValue(Procdbcomm, "@name");
0
相关文章