如何使用 ExecuteScalar 来检索单个项
ExecuteScalar 方法专门适用于仅返回单个值的查询如果查询返回多个列和/或行ExecuteScalar 将只返回第一行的第一列
以下代码说明了如何查找与特定产品 ID 相对应的产品名称
void GetProductNameExecuteScalar( int ProductID out string ProductName )
{
using( SqlConnection conn = new SqlConnection(
server=(local);Integrated Security=SSPI;database=northwind) )
{
SqlCommand cmd = new SqlCommand(LookupProductNameScalar conn );
cmdCommandType = CommandTypeStoredProcedure;
cmdParametersAdd(@ProductID ProductID );
connOpen();
ProductName = (string)cmdExecuteScalar();
}
}
使用 ExecuteScalar 来检索单个项
建立一个 SqlCommand 对象来调用存储过程
打开连接
调用 ExecuteScalar 方法注意该方法返回一个对象类型它包含检索到的第一列的值并且必须转化为适当的类型
关闭连接
上述代码使用了以下存储过程
CREATE PROCEDURE LookupProductNameScalar
@ProductID int
AS
SELECT TOP ProductName
FROM Products
WHERE ProductID = @ProductID
GO
如何使用存储过程输出或返回参数来检索单个项
可以使用存储过程输出或返回参数来查找单个值以下代码阐明了输出参数的用法
void GetProductNameUsingSPOutput( int ProductID out string ProductName )
{
using( SqlConnection conn = new SqlConnection(
server=(local);Integrated Security=SSPI;database=northwind) )
{
SqlCommand cmd = new SqlCommand(LookupProductNameSPOutput conn );
cmdCommandType = CommandTypeStoredProcedure;
SqlParameter paramProdID = cmdParametersAdd(@ProductID ProductID );
ParamProdIDDirection = ParameterDirectionInput;
SqlParameter paramPN =
cmdParametersAdd(@ProductName SqlDbTypeVarChar );
paramPNDirection = ParameterDirectionOutput;
connOpen();
cmdExecuteNonQuery();
ProductName = paramPNValueToString();
}
}
[] [] [] [] [] [] [] [] []