——此文章摘自《C#高级编程(第
版)》定价
元 特价
元 购买
ExecuteScalar()方法
在许多情况下需要从SQL语句返回一个结果例如给定表中的记录个数或者服务器的当前日期/时间ExecuteScalar方法就可以用于这些场合
using System;
using SystemDataSqlClient;
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);
connOpen();
SqlCommand cmd = new SqlCommand(select conn);
object o = cmdExecuteScalar();
ConsoleWriteLine ( o ) ;
}
}
该方法返回一个对象如果需要可以把该对象的数据类型转换为合适的类型
ExecuteXmlReader()方法(只用于SqlClient提供程序)
顾名思义这个方法执行命令给调用者返回一个XmlReader对象SQL Server允许使用FOR XML子句来扩展SQL子句这个子句可以带有下述个选项中的一个
●FOR XML AUTO根据FROM子句中的表建立一个树
●FOR XML RAW结果集中的行映射为元素其中的列映射为属性
●FOR XML EXPLICIT必须指定要返回的XML树的形状
Professional SQL Server XML(ISBN )一书列出了这些选项的完整描述下面的示例使用了AUTO
using System;
using SystemDataSqlClient;
using SystemXml;
public class ExecuteXmlReaderExample
{
public static void Main(string[] args)
{
string source =server=(local)\\NetSDK; +
integrated security=SSPI; +
database=Northwind;
string select = SELECT ContactNameCompanyName +
FROM Customers FOR XML AUTO;
SqlConnection conn = new SqlConnection(source);
connOpen();
SqlCommand cmd = new SqlCommand(select conn);
XmlReader xr = cmdExecuteXmlReader();
xrRead()
string s;
do
{
s = xr ReadOuterXml();
if (s!=)
ConsoleWriteLine(s);
} while (s!=);
connClose();
}
}
注意必须导入SystemXml命名空间才能输出返回的XML这个命名空间和NET Framework其他的XML功能将在第章中详细论述
本例在SQL语句中包含了FOR XML AUTO子句然后调用ExecuteXmlReader()方法代码的结果图如图所示
在SQL子句中我们指定了FROM Customers这样类型Customers的元素就显示在输出中为它添加元素每个元素对应于从数据库中选择出来的列这就为每个从数据库中选择出来的行建立了XML标志
图
[] []