社区
.NET技术前瞻
帖子详情
如何使用微软企业库?
chenxuyuan827
2016-08-31 08:58:30
求大神帮忙,帮忙属实给分!!!!
...全文
288
2
打赏
收藏
如何使用微软企业库?
求大神帮忙,帮忙属实给分!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_35913485
2016-09-03
打赏
举报
回复
using System.Data;using Microsoft.Practices.EnterpriseLibrary.Data;下面列出一些模块常用的获取数据、更新数据方法,其中有一些和直接使用ADO.NET中的方法很相似:方法功能ExecuteDataset,创建,加载,返回数据集LoadDataSet,加载数据到一个已经存在的数据集 TransactionScope,支多项事务同时执行,一旦发生异常则会回滚所有操作填充一个数据集,使用数据集更新数据库ExecuteReader,创建,返回一个provider独立的DbDataReader实例从数据库读取多行数据ExecuteNonQuery,执行command,返回数据库受影响的行数,可以通过output返回多个值ExecuteScalar,执行command,返回单个值第一行第一列的值执行command数据库命令对象ExecuteSproAccessor,使用存储过程返回一个客户端可以查询的序列对象ExecuteSqlStringAccessor,使用SQL语句返回一个客户端可以查询的序列对象以序列对象的形式返回数据ExecuteXmlReader,返回xml格式的数据,xmlReader类型,这个只能用在SQL Server数据库,通过SqlDatabase类调用,Database类中没有这个方法。获取xml格式数据(只能用在SQL Server数据库)GetStoredProcCommand,返回一个存储过程的数据库command对象GetSqlStringCommand,返回一个SQL语句的数据库command对象创建一个Command对象AddInParameter,创建一个新的input参数,并且加入command的参数集合AddOutParameter,创建一个新的output参数,并且加入command的参数集合AddParameter,创建一个指定类型的参数,并且加入command的参数集合GetParameterValue,以Object类型返回指定参数的值SetParameterValue,给指定参数赋值处理command的参数CreateConnection,创建,返回当前数据库的连接,允许你通过这个链接初始化和管理数据库事务处理数据库事务下面我们通过案例来演示以上常用的方法的使用:1、 首先我们来编辑配置文件:在菜单栏中选定Blocks>Add Data Setting来添加数据库的类型和连接字符串 [转载]如何使用微软企业库对数据库的访问name由应用程序访问的数据库实例的逻辑名称。在节中,名称必须是唯一的。此属性是必须的。providerName提供程序的名称。默认情况下,提供程序的名称定义在 Machine.config 文件中。providerName 名称必须是一个在 DBProviderFactory 类中指定的提供程序的名称。此属性是必须的。connectionString可用于被选的提供程序的连接字符串,此属性是必须的。 首先我们实例化一个DataBase private static Database db = DatabaseFactory.CreateDatabase("Test"); 1. ExecuteDataset:创建,加载,返回数据集,ExecuteScalar返回单个值第一行第一列的值string sql = "select * from [User]";DbCommand com = db.GetSqlStringCommand(sql);//执行并返回数据集rptTest.DataSource = db.ExecuteDataSet(com).Tables[0];rptTest.DataBind(); [转载]如何使用微软企业库对数据库的访问2 . LoadDataSet,加载数据到一个已经存在的数据集 private void LoadDataSet() { DataSet table; string sql = "select * from [User]"; DbCommand com = db.GetSqlStringCommand(sql); DbCommand com1 = db.GetSqlStringCommand(sql); table = db.ExecuteDataSet(com1); // 执行com 并将所得到得结果追加的数据集table中 db.LoadDataSet(com, table, "table"); rptTest.DataSource = table.Tables["table"]; rptTest.DataBind(); } [转载]如何使用微软企业库对数据库的访问3.ExecuteReader,创建,返回一个provider独立的DbDataReader实例 private void ExecuteReader() { string sql = "select * from [User]"; DbCommand com = db.GetSqlStringCommand(sql); IDataReader read = db.ExecuteReader(com); Label1.Text=" <div class='left title'> 姓名</div><div class='right title'> 邮箱</div><div style='clear: both; width:200px'>"; while (read.Read()) { //获取该列的所有信息 object[] values = new object[3]; read.GetValues(values); Label1.Text += "<div class='left'>" + values[0].ToString() + "</div>" + "<div class='left'>" + values[2].ToString() + "</div> "; } Label1.Text += "</div>"; read.Close(); } [转载]如何使用微软企业库对数据库的访问4. ExecuteScalar,执行command,返回单个值第一行第一列的值 string sql = "select * from [User]"; DbCommand com = db.GetSqlStringCommand(sql); bl.Text = string.Format("第一行第一列的数据:{0}", db.ExecuteScalar(com).ToString()); [转载]如何使用微软企业库对数据库的访问5. GetSqlStringCommand方法用于 SQL 文本命令 protected void Page_Load(object sender, EventArgs e) { select(); } private void getSqlStringCommand(string sqlQuery) { //GetSqlStringCommand方法的使用 DbCommand com = db.GetSqlStringCommand(sqlQuery); db.ExecuteNonQuery(com); select(); }//为了区别添加数据跟已有数据区分开来 private static int ID = 0; //插入数据 protected void Insert_Click(object sender, EventArgs e) { getSqlStringCommand("insert[User] values('江苏迈瑞" + (ID++).ToString() + "'," + "'www.maxray.com','hr@maxray.cn') "); } //查询信息 private void select() { string sqlQuery = "select * from [User] "; DbCommand com = db.GetSqlStringCommand(sqlQuery); rptGetSqlStringCommand.DataSource = db.ExecuteDataSet(com).Tables[0]; rptGetSqlStringCommand.DataBind(); } //删除信息 protected void bntDelete_Click(object sender, EventArgs e) { getSqlStringCommand("delete [User] where UserName='江苏迈瑞"+ (ID--).ToString()+"'"); } //更新数据 protected void update_Click(object sender, EventArgs e) { getSqlStringCommand("update [User] set UserName='updata_江苏迈瑞' where UserName='测试1' "); } [转载]如何使用微软企业库对数据库的访问6. GetStoredProcCommand方法用于执行存储过程命令private void getStoredProcCommand() { //执行存储过程 (不带参数) DbCommand com = db.GetStoredProcCommand("proc_list"); rptGetStoredProcCommand.DataSource = db.ExecuteDataSet(com).Tables[0]; rptGetStoredProcCommand.DataBind(); } [转载]如何使用微软企业库对数据库的访问7.参数处理(存储过程和T-Sql中的参数)1. Database中的GetStoredProcCommand方法用于执行存储过程命令。2. Database中的GetSqlStringCommand方法用于 SQL 文本命令。二个方法都返回一个DbCommand对象。 (1)sql语句中的参数处理 string sql = "select * from [User] where ID=@ID "; DbCommand com=db.GetSqlStringCommand(sql);//添加参数 db.AddInParameter(com, "@ID", DbType.Int32, 1); rptTest.DataSource = db.ExecuteDataSet(com).Tables[0]; rptTest.DataBind();(2)存储过程中的参数处理(参数以“proc_“为存储过程)a)参数发现//直接指定参数的值,在这里要注意参数出现的顺序应与存储过程中的顺序相同。如果数据类型转换失败,则报出异常。 DbCommand com = db.GetStoredProcCommand("proc_Test","测试",12); db.ExecuteNonQuery(com); b) 处理参数 AddInParameter,创建一个新的input参数,并且加入command的参数集合AddOutParameter,创建一个新的output参数,并且加入command的参数集合AddParameter,创建一个指定类型的参数,并且加入command的参数集合GetParameterValue,以Object类型返回指定参数的值 private void GetStoredProcCommand() { DbCommand com = db.GetStoredProcCommand("proc_Login"); //设置指定参数的值、类型 db.AddInParameter(com, "@Psd", DbType.Int32, 12); db.AddInParameter(com, "@UserName", DbType.String, "1212"); //获取数据库中的返回值db.AddParameter(com, "@retrunvalue", DbType.String, ParameterDirection.ReturnValue, null, DataRowVersion.Current, null); db.AddOutParameter(com, "@outputEmail", DbType.String, 20);db.ExecuteNonQuery(com); string Rvalue=com.Parameters["@retrunvalue"].Value.ToString(); string OEmail= com.Parameters["@outputEmail"].Value.ToString(); string GValue = db.GetParameterValue(com,"@name").ToString(); lblInfo.Text = "<div class='left title'> 返回的参数为</div> <br/> <br/>GetParameterValue=" + GValue + "<br /> AddOutParameter=" + OEmail + "<br /> ReturnValue=" + Rvalue; } 存储过程 ALTER proc [dbo].[proc_Login]@Psd varchar(50),@UserName varchar(50) ,@outputEmail varchar(50) outputAS BEGIN set @outputEmail=( SELECT Email FROM [User] WHERE Psd = @Psd and UserName=@UserName) return @@rowcount END [转载]如何使用微软企业库对数据库的访问8. ExecuteSproAccessor,使用存储过程返回一个客户端可以查询的序列对象 private void executeSproAccessor() { var student = db.ExecuteSprocAccessor<Student>("proc_Test","江",1); Student[] std = student.ToArray(); for (int i = 0; i < std.Count<Student>(); i++) { Label1.Text += std[i].id + " " + std[i].email + " " + std[i].psd + " " + std[i].username + "<br/>"; } } [转载]如何使用微软企业库对数据库的访问9. ExecuteSqlStringAccessor,使用SQL语句返回一个客户端可以查询的序列对象private void executeSproAccessor() { var student = db.ExecuteSqlStringAccessor<Student>("select * from [User]"); Student[] std = student.ToArray(); for (int i = 0; i < std.Count<Student>(); i++) { Label1.Text += std[i].id + " " + std[i].email + " " + std[i].psd + " " + std[i].username + "<br/>"; } } [转载]如何使用微软企业库对数据库的访问10. ExecuteXmlReader,返回xml格式的数据,xmlReader类型,这个只能用在SQL Server数据库,通过SqlDatabase类调用,Database类中没有这个方法。private void executeXmlReader () { string sql = "SELECT * FROM [User] FOR XML AUTO"; Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabasesqlDB=(Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase)db; DbCommand cmd = sqlDB.GetSqlStringCommand(sql); var reader = sqlDB.ExecuteXmlReader(cmd); string xml= "<?xml version='1.0' encoding='utf-8' ?><root>"; while (!reader.EOF) { if ((reader.IsStartElement())) { xml += reader.ReadOuterXml(); } } xml += "<root>"; Response.Write(xml); Response.End(); } [转载]如何使用微软企业库对数据库的访问11. TransactionScope支多项事务同时执行,一旦发生异常则会回滚所有操作 protected void TransactionScope() {// insert操作会发生失败,同时会回滚delete事件 string sqlInsert = "insert [User] values('12','江苏迈瑞')"; string sqlDelete = "delete [User] where ID=8"; try { using (TransactionScope sp = new TransactionScope(TransactionScopeOption.RequiresNew)) { db.ExecuteNonQuery(CommandType.Text, sqlDelete); db.ExecuteNonQuery(CommandType.Text, sqlInsert); sp.Complete(); } } catch (Exception ex) { Response.Write(ex.Message); } }}
poi3.14版本jar包
POI
使用
这些架构来验证和构建符合标准的文档,确保生成的文件能被Microsoft Office正确识别和处理。这个JAR文件包含了例如XSD文件,它们定义了Excel的SpreadsheetML、Word的DocumentML以及PowerPoint的...
使用
微软
企业库
Enterprise Library连接PostgreSQL等第三方数据库注意事项
最近项目开发在做数据库迁移,由于原先项目框架中采用
微软
企业库
(Enterprise Library)连接MSSQL做了封装,由于官方对
企业库
已停更,而
企业库
对第三方数据库的支持需要扩展类库的支持,第三方类库大多数对
企业库
的...
微软
企业库
5.0学习笔记(一)
企业库
是什么?
什么是
企业库
?
企业库
包含一系列应用程序模块和核心架构。这些高复用的组件旨在帮助开发者解决一些共同的企业开发问题。
企业库
同时提供高可配置的特性,使我们管理重复的工作更加容易,例如我们知道的在应用的很多...
微软
企业库
是什么_什么是Microsoft团队?适合我的企业吗?
微软
企业库
是什么Microsoft Teams is the company’s answer to the need for user-friendly digital collaboration software in the modern workplace. It competes with Slackand will replace Skype for ...
微软
企业库
5.0学习笔记(四)配置
企业库
配置
企业库
管理一。
使用
配置工具1.单独
使用
配置工具。开始->所有应用程序->Microsoft patterns & practices->Enterprise Library 5.0->Enterprise Library Configuration选择相应的版本,弹出配置窗口。可以新建或...
.NET技术前瞻
13,346
社区成员
5,386
社区内容
发帖
与我相关
我的任务
.NET技术前瞻
.NET技术 .NET技术前瞻
复制链接
扫一扫
分享
社区描述
.NET技术 .NET技术前瞻
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章