安全中国首页 > 编程中心 > VC/C++编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

C#高级编程:执行命令[2](图)

更新时间:2008-7-11 18:05:29
责任编辑:ShellExp
热 点:
   3. ExecuteScalar()方法

    在许多情况下,需要从SQL语句返回一个结果,例如给定表中的记录个数,或者服务器的当前日期/时间。ExecuteScalar方法就可以用于这些场合:
    using System;
    using System.Data.SqlClient;
    public class ExecuteScalarExample
    {
       public static void Main(string[] args)
       {
          string source ="server=(local)\\NetSDK;" +
                      " integrated security=SSPI;" +
                      "database=Northwind";
          string select = "SELECT COUNT(*) FROM Customers";
          SqlConnection conn = new SqlConnection(source);
          conn.Open();
          SqlCommand cmd = new SqlCommand(select, conn);
          object o = cmd.ExecuteScalar();
          Console.WriteLine ( o ) ;
       }
    }
    该方法返回一个对象,如果需要,可以把该对象的数据类型转换为合适的类型。

    4. ExecuteXmlReader()方法(只用于SqlClient提供程序)

    顾名思义,这个方法执行命令,给调用者返回一个XmlReader对象。SQL Server允许使用FOR XML子句来扩展SQL子句,这个子句可以带有下述3个选项中的一个: 
    ●FOR XML AUTO:根据FROM子句中的表建立一个树
    ●FOR XML RAW:结果集中的行映射为元素,其中的列映射为属性
    ●FOR XML EXPLICIT:必须指定要返回的XML树的形状

    Professional SQL Server 2000 XML(ISBN 1-861005-46-6)一书列出了这些选项的完整描述。下面的示例使用了AUTO:
    using System;
    using System.Data.SqlClient;
    using System.Xml;
    public class ExecuteXmlReaderExample
    {
       public static void Main(string[] args)
       {
          string source ="server=(local)\\NetSDK;" +
                      " integrated security=SSPI;" +
                      "database=Northwind";
          string select = "SELECT ContactName,CompanyName " +
                      "FROM Customers FOR XML AUTO";
          SqlConnection conn = new SqlConnection(source);
          conn.Open();
          SqlCommand cmd = new SqlCommand(select, conn);
          XmlReader xr = cmd.ExecuteXmlReader();
    xr.Read();
    string s;
          do
          {
             s = xr. ReadOuterXml();
             if (s!="")
                Console.WriteLine(s);
          } while (s!="");
          conn.Close();
       }
    }

    注意必须导入System.Xml命名空间,才能输出返回的XML。这个命名空间和.NET Framework其他的XML功能将在第24章中详细论述。

    本例在SQL语句中包含了FOR XML AUTO子句,然后调用ExecuteXmlReader()方法。代码的结果图如图21-3所示。

    在SQL子句中,我们指定了FROM Customers,这样类型Customers的元素就显示在输出中。为它添加元素,每个元素对应于从数据库中选择出来的列。这就为每个从数据库中选择出来的行建立了XML标志。


图  21-3

 
学习软件编程开发技术,推荐加入以下软件编程培训班:
易语言软件编程培训班(简单易学)  Delphi软件编程培训班  VC++软件编程培训班
VB软件编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚技能培训班  Flash动画设计师就业特训班

 
相关编程
一日一文章
 
一日一软件
一日一动画