微软企业库-数据访问
第一步、添加程序集引用
需要在项目中添加对下列程序集的引用
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
Microsoft.Practices.ObjectBuilder2.dll
Microsoft.Practices.Unity.dll
第二步、使用命名空间
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
第三步、在Webconfig中配置连接字符串
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=DBStu;Integrated Security=True" />
</connectionStrings>
第四步、连接数据库
Database db = DatabaseFactory.CreateDatabase("DefaultConnection");
第五步、方法
1.执行增删改sql语句
public int Add(Student Stu)
{
string sql = "insert into student values(@sname,@sex,@sex)";
DbCommand cmd = db.GetSqlStringCommand(sql);
db.AddInParameter(cmd, "@name", DbType.String, Stu.Sname);
db.AddInParameter(cmd, "@sex", DbType.String, Stu.Sex);
db.AddInParameter(cmd, "@age", DbType.Int32, Stu.Age);
return db.ExecuteNonQuery(cmd);
}
ADO中使用SQLParameter 企业库中使用AddInParameter 需要转类型
2.执行存储过程
public int Regist(T_Users user)
{
string str = "P_RegistUsers"; 存储过程名称
DbCommand cmd = db.GetStoredProcCommand(str);
db.AddInParameter(cmd,"@USERS_NAME",DbType.String,user.USERS_NAME);
db.AddInParameter(cmd, "@USERS_PWD", DbType.String, user.USERS_PWD);
db.AddInParameter(cmd,"@USERS_EMAIL",DbType.String,user.USERS_EMAIL);
db.AddInParameter(cmd,"@USERS_PHONE",DbType.String,user.USERS_PHONE);
db.AddInParameter(cmd,"@Users_Idcard",DbType.String,user.Users_Idcard);
db.AddInParameter(cmd, "@Users_State", DbType.Int32, 1);
db.AddInParameter(cmd,"@Regist_Date",DbType.DateTime,DateTime.Now);
int i = Convert.ToInt32(db.ExecuteNonQuery(cmd));
return i;
}
执行SQL语句使用GetSqlStringCommand
执行存储过程使用GetStoredProcCommand
3、返回数据
public List<V_Users> Get_V_Users()
{
string str = "SELECT * FROM V_Users";
DbCommand cmd = db.GetSqlStringCommand(str);
List<V_Users> list = new List<V_Users>();
IDataReader da = db.ExecuteReader(cmd);
while (da.Read())
{
V_Users user = new V_Users();
user.USERS_ID = Convert.ToInt32(da["USERS_ID"]);
user.USERS_NAME = da["USERS_NAME"].ToString();
user.USERS_PWD = da["USERS_PWD"].ToString();
user.USERS_EMAIL = da["USERS_EMAIL"].ToString();
user.USERS_PHONE = da["USERS_PHONE"].ToString();
user.Users_Idcard = da["Users_Idcard"].ToString();
user.Role_Name = da["Role_Name"].ToString();
list.Add(user);
}
return list;
}
ADO中使用DataReader 返回数据
而企业库使用IDataReader 需要引入命名空间:using System.Data;