3.Command对象
下面用一个实例讲解Connection 和 Command、DataReader以及储存过程和参数的设置:
(1.)下载安装微软提供的Northwind数据库:
/Files/Simcoder/微软提供的数据库.rar 含帮助文档 简单容易操作 数据库安装后 文件默认在C盘 然后附加即可
(2.)找到提供的存储过程:(本实例 使用倒数第二个 SalesByCategory 存储过程做演示)
(3.)简单查看一下存储过程的代码,其实通过名字都能知道大概做什么用
---------------------- *创*建*存*储*过*程* ----------------------- set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[SalesByCategory] --修改存储过程[SalesByCategory] @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998' --设置参数 (以下的实现暂不用管) AS IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998' BEGIN SELECT @OrdYear = '1998' END SELECT ProductName, TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0) FROM [Order Details] OD, Orders O, Products P, Categories C WHERE OD.OrderID = O.OrderID AND OD.ProductID = P.ProductID AND P.CategoryID = C.CategoryID AND C.CategoryName = @CategoryName AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear GROUP BY ProductName ORDER BY ProductName ---------------------- *执*行*存*储*过*程* ----------------------- USE [Northwind] GO DECLARE @return_value int EXEC @return_value = [dbo].[SalesByCategory] @CategoryName = N'Produce', @OrdYear = N'1998' SELECT 'Return Value' = @return_value GO --需要设置@CategoryName,@OrdYear(可以不设置 为空上面有判断)参数值查询
结果是: