`
caozuiba
  • 浏览: 902878 次
文章分类
社区版块
存档分类
最新评论

ADO.NET快马加鞭

 
阅读更多
<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

当然首先是使用链接池了~~
连接池
Connection Timeout--尝试连接数据存储区时的等待时间默认是15秒
Min Pool Size-连接池的最小容量
Max Pool Size-连接池最大容量默认是100
Pooling 默认是true则请求从连接池返回一个新的连接,没有泽创建

Connection Reset表示在从连接池中删除数据库连接时,将会重置该连接,默认是true,如果设置成false则在创建连接时往返服务器的次数会更少但是不更新连接状态

如果出了毛病就~~SqlConnection.ClearAllPools();//清除连接池
------然后是重头戏~~自然是使用异步咯
1首先在连接字符串中设置一个 async=true
-------理论就这么多了~~看段代码爽爽把


31041条纪录4秒


usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassDefault5:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{


}

protectedvoidButton1_Click(objectsender,EventArgse)
{
DateTimeold
=DateTime.Now;

SqlConnectionDbCon;
SqlCommandCommand
=newSqlCommand();
SqlDataReaderOrdersReader;
IAsyncResultAsyncResult;
//异步


DbCon
=newSqlConnection();
DbCon.ConnectionString
=System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringInfo"].ConnectionString;
Command.Connection
=DbCon;


Command.CommandText
="Select";
Command.CommandType
=CommandType.StoredProcedure;
Command.Connection
=DbCon;

try
{
DbCon.Open();
AsyncResult
=Command.BeginExecuteReader();
while(!AsyncResult.IsCompleted)//获取异步操作是否已完成的指示。
{
//由于异步操作必须阻止线程秒钟
System.Threading.Thread.Sleep(10);

}

OrdersReader
=Command.EndExecuteReader(AsyncResult);
GridView1.DataSource
=OrdersReader;
GridView1.DataBind();
}

catch(System.Exception)
{

}

TimeSpannot
=DateTime.Now-old;
Label1.Text
=not.Seconds.ToString();
}

}

- -上面的只是小事伸手~~来个速度更快的

//最强大的wait调用,只是把System.Threading.WaitHandle.WaitAll换成,System.Threading.WaitHandle.WaitAny因为System.Threading.WaitHandle.WaitAny
//可以在某一格进程结束后得到处理,修改try部分--注意看
protectedvoidButton4_Click(objectsender,EventArgse)
{
DateTimeold
=DateTime.Now;
//实际上就是在第一个结果集是检索的源,第二个结果集实际上只要查询第一个结果集里面有的字段,不会在数据库中查寻,而是用第一个结果集
SqlConnectionDBCon=newSqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringInfo"].ConnectionString);
SqlCommandTable_1Command
=newSqlCommand("select*fromTable_2whereId>4000001",DBCon);//---这里执行查询后
SqlCommandMMCommand=newSqlCommand("selectTitle,ContentfromMM,Table_2whereMM.ID=Table_2.Id",DBCon);//Table_2.Id其实是上面的Table_2地一列

Table_1Command.CommandType
=CommandType.Text;
MMCommand.CommandType
=CommandType.Text;

SqlDataReaderTable_1DataReader;
SqlDataReaderMMDataReader;

IAsyncResultTable_1AsyncResult;
IAsyncResultMMAsyncResult;

System.Threading.WaitHandle[]WHandles
=newSystem.Threading.WaitHandle[2];

//封装等待对共享资源的独占访问的操作系统特定的对象。
System.Threading.WaitHandleTable_1Whandle;
System.Threading.WaitHandleMMWhandle;

try
{

DBCon.Open();
Table_1AsyncResult
=Table_1Command.BeginExecuteReader();
MMAsyncResult
=MMCommand.BeginExecuteReader();

Table_1Whandle
=Table_1AsyncResult.AsyncWaitHandle;
MMWhandle
=MMAsyncResult.AsyncWaitHandle;

WHandles[
0]=Table_1Whandle;
WHandles[
1]=MMWhandle;

System.Threading.WaitHandle.WaitAny(WHandles);





for(intindex=0;index<2;index++)
{
//--------返回完成执行等待句柄索引该数据在WHandles索引里面的某个
intwhindex=System.Threading.WaitHandle.WaitAny(WHandles);
switch(whindex)
{
//注意这里必须和上面装入WHandles集合的索引一样
case0:
Table_1DataReader
=Table_1Command.EndExecuteReader(Table_1AsyncResult);
GridView1.DataSource
=Table_1DataReader;
GridView1.DataBind();
break;
case1:

MMDataReader
=MMCommand.EndExecuteReader(MMAsyncResult);
GridView2.DataSource
=MMDataReader;
GridView2.DataBind();

break;

}


}









}

catch(System.Exception)
{

}

finally
{
DBCon.Close();
}




TimeSpannot
=DateTime.Now-old;
Label1.Text
=not.Seconds.ToString();
}

~~上面的可是高级应用--不过在怎么提速安全第一
首先要设置三台服务器~~或者是三个sqlserver实例咯



主要服务器为.
景象服务器为./Partner
观察者服务器为./Witness

然后再连接字符串中设置 FailOver Parter="./Partner"即可

--当往主服务器中插入数据的时候竟象服务器也会插入数据,如果主服务器停止工作则景象服务器被观察者服务器设置为主服务器

分享到:
评论

相关推荐

    ADO.NET 4从入门到精通

    《ADO.NET 4从入门到精通》主要内容简介:ADO.NET是windows开发平台上的核心数据技术之一。《ADO.NET 4从入门到精通》是microsoft ADO.NET 4的入门教程,旨在帮助visual basic和c#开发人员了解ADO.NET及相关技术的...

    ADO.Net助手V1.00---一个获取ADO.Net连接字符串,测试SQL命令的辅助软件

    ADO.Net助手是一个获取ADO.Net连接字符串(支持Access,SQLite,SQLServer,MySQL和ORACLE),测试SQL命令,存储过程和数据库之间互导数据的辅助软件。ADO.Net助手还可以用来以插入SQL语句形式导出导入记录,目前提供了...

    ADO.NET sql、LINQ to sql、ADO.NET Entity Framework(EF)数据库连接性能比较

    数据ADO.NET sql、LINQ to sql、ADO.NET Entity Framework(EF)数据库连接性能比较,主要比较了插入与读取的时间,读取里可以进行模糊检索

    基于ADO.NET的用户登陆与注册系统

    摘要:基于ASP.NET的WEB应用程序项目,使用程序语言C#,利用ADO.NET访问数据库,实现一个简易的用户登陆注册系统。主要实现的功能有用户登陆、用户注册、找回密码,... 关键字:ASP.NET;ADO.NET;WEB;vs2010;数据库

    ADO.NET考试上机题

    ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试...

    ADO.NET数据库访问技术详细资料

    C#与数据库访问技术 ADO.NET(ActiveX Data Object.NET)是Microsoft公司开发的用于数据库连接的... ADO.NET还提供了对XML格式文档的支持,所以通过ADO.NET组件可以方便地在异构环境的项目间读取和交换数据。 ......

    ado.net操作oracle简单参数化sql操作

    关于ado.net简单的参数化查询,操作的是oracle数据库!关于ado.net简单的参数化查询,操作的是oracle数据库!

    ADO.NET自己封装SqlHelper类

    ADO.NET自己封装SqlHelper类 1、简单封装 2、传递参数封装 3、参数可变封装

    学生管理系统+ADO.NET+SQL2005

    学生管理系统源码,ADO.NET进行增删改查学生基本和系别信息,适合毕业设计。

    Professional ADO .NET Programming

    Professional ADO .NET Programming Professional ADO .NET Programming Professional ADO .NET Programming Professional ADO .NET Programming

    Microsoft ADO.NET Step by Step

    Table of Contents Microsoft ADO.NET Step by Step Introduction Part I - Getting Started with ADO.NET Chapter 1 - Getting Started with ADO.NET ...

    ADO.Net数据库访问(代码示例)

    ADO.Net数据库访问(代码示例),介绍了ADO.Net数据库访问的核心技术

    ADO.NET 高级编程

    ADO.NET 高级编程,深入剖析ADO.NET类

    ADO.NET 4从入门到精通源代码

    ADO.NET 4从入门到精通源代码 里面有 未完成的和已完成的 源代码示例

    Pro ADO.NET Data Services: Working with RESTful Data

    Pro ADO.NET Data Services: Working with RESTful Data Paperback: 336 pages Publisher: Apress; 1 edition (December 2, 2008) Language: English ISBN-10: 143021614X ISBN-13: 978-1430216148 Format: PDF You...

    ADO.NET本质论

    讲解了数据结构,演示了如何用ADO.NET来解决具体的数据访问问题。重点讨论了ADO.NET如何有效地平衡"功能的泛化"和"执行效率",以及它如何解决对扩展性、并发性和可靠性的要求。针对其他数据访问API(包括OLE DB,ADO...

    ADO.net操作数据库总结

    ADO.net操作数据库总结,包括SqlConnection、SqlCommand等

    ADO.NET高级编程

    ADO.NET是Microsoft最新推出的数据访问技术。作为.NET框架的一部分,ADO.NET绝不仅仅是前一版本ADO的简单升级。ADO.NET提供了一组.NET类,这些类不仅可以帮助我们对各种数据源进行高效访问,使我们能够对数据...

    ADO.NET技术内幕 part4

    本书是使用Microsoft Visual Studio .NET和ADO.NET编写高可伸缩性、可用Web数据库应用程序的开发人员必备指南。介绍了如何使用ADO.NET在企业级的Web应用程序中访问、排序和处理数据。通过书中丰富的实例和工具,读者...

    Codesmith ADO.NET 模版

    Codesmith ADO.NET 模版Codesmith ADO.NET 模版Codesmith ADO.NET 模版Codesmith ADO.NET 模版Codesmith ADO.NET 模版Codesmith ADO.NET 模版

Global site tag (gtag.js) - Google Analytics