深入研究SQL SERVER 2005和多活动结果集(MARS)
SQL SERVER 2005引入了在单一连接上对多活动结果集(也称为MARS)或多个请求的支持。通过在与SQL SERVER 2005的连接上启用这一特性,当存在与Sqlconnection相关联的开放式SqlDataReader时,连接将不会中断。即使尚未关闭当前打开的SqlDataReader,也仍然能够在Sqlconnection上执行其他查询比如:SELECT,UPDATE,CREATETABLE等等。
举个简单的例子,就是在Northwind数据库里的订单表里取订单数据,而且把对应的子订单明细数据一起取出。
C#示例代码:<激光传真机>
string strSQL;
SqlConnectionStringBuilder ssb = new SqlConnectionStringBuilder();
ssb.DataSource = ".";
ssb.InitialCatalog = "Northwind";
ssb.UserID = "sa";
ssb.Password = "********";
ssb.MultipleActiveResultSets = true;
SqlConnection cn = new SqlConnection(ssb.ConnectionString);
SqlCommand cmdOrders, cmdDetials;
SqlParameter pCustID, pOrderID;
SqlDataReader rdrOrders, rdrDetials;
cn.Open();
strSQL = "SELECT OrderID,OrderDate from Orders WHERE CustomerID = @CustomerID";
cmdOrders = new SqlCommand(strSQL, cn);
pCustID = cmdOrders.Parameters.Add("@CustomerID", SqlDbType.NChar, 5);
strSQL = "SELECT ProductID,Quantity,UnitPrice from [ORDER dETAiLS] WHERE OrderID = @OrderID";
cmdDetials = new SqlCommand(strSQL, cn);
pOrderID = cmdDetials.Parameters.Add("@OrderID", SqlDbType.NChar, 5);
pCustID.Value = "ALFKI";
Console.WriteLine("Orders for {0}", pCustID.Value);
Console.WriteLine("=================");
rdrOrders = cmdOrders.ExecuteReader();
while (rdrOrders.Read())
{
Console.WriteLine("OrderID: {0} OrderDate:{1:d}", rdrOrders["OrderID"], rdrOrders["OrderDate"]);
pOrderID.Value = rdrOrders["OrderID"];
rdrDetials = cmdDetials.ExecuteReader();
while (rdrDetials.Read())
相关文档:
[C#]
public void RunSqlTransaction(string myConnString)
{
SqlConnection myConnection = new SqlConnection(myConnString);
myConnection.Open();
SqlCommand myCommand = myConnection.CreateCommand();
SqlTransaction m ......
我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中数据量很大的话,一次检索所有的记录,会占用系统很大的资源,因此我们常常采用,需要多少数据就只从数据库中取多少条记录,即采用分页语句。根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第 ......
1、配置java环境,MyEclipse7.0。配置jboss5.0,展开选择jdk为已安装的jdk路径。
2、安装2005和sql2000,装2000时要装sp4.驱动选择jdbc2.0。再装2000时实例名自己输入一个。这里的问题就是登录名和密码的设置,右击“SQL Server组”下的实例名(Windows NT)"的“属性”,在弹出的对话框 ......
SQL Server 2005引进了一个很有价值的新的Transact-SQL语言组件:一个通用表表达式(Common Table Expression,CTE),它是派生表和视图的一个便捷的替代。通过使用CTE,我们可以创建一个命名结果集来在SELECT、INSERT、UPDATE和DELETE语句中引用,而无须保存结果集结构的任何元数据。在本文中,我将阐述如何在SQL Server 2 ......