有以下的存储过程.当我用SQL调用的时候.就在第一句读取的时候出错了..为什么呢?//////////////////////////SQL的存储过程.///////////
CREATE PROCEDURE spRoomFullRate
@StartDate smalldatetime,
@EndDate smalldatetime
AS
SELECT b.rName,a.rTypeNum,b.rFullDays,
(CAST(
(
(CAST(b.rFullDays as decimal(5,2)))/
(CAST(a.rTypeNum as decimal(5,2)))/
(CAST(DATEDIFF(day,@StartDate,@EndDate)AS decimal(5,2)))*100
)
AS decimal(5,2)
)
)AS rFullRate
FROM
( SELECT COUNT(tblRoom.rNum) AS rTypeNum,tblRoom.rType
FROM tblRoom
GROUP BY tblRoom.rType)a,
( SELECT tblRoomType.rName,tblRoomType.rType,
(SUM(DATEDIFF(day,tblClient.cInTime,tblClient.cOutTime)))AS rFullDays
FROM tblClient,tblRoom,tblRoomType
WHERE (tblClient.cInTime between @StartDate and @EndDate)AND
(tblClient.rNum=tblRoom.rNum)AND
(tblRoom.rType=tblRoomType.rType)
GROUP BY rName,tblRoomType.rType
)b
WHERE a.rType=b.rType
GO//////////////////////////SQL的存储过程.///////////
//////////////////////////C#的语句///////////
ListView1.Columns.Add("客房类型",90,HorizontalAlignment.Center);
ListView1.Columns.Add("该类客房数",140,HorizontalAlignment.Center);
ListView1.Columns.Add("入住情况(人.天)",180,HorizontalAlignment.Center);
ListView1.Columns.Add("入住率(%)",140,HorizontalAlignment.Center);
while(dr.Read())
{
ListViewItem item = new ListViewItem(dr["rName"].ToString(),0);//这里就开始错了
item.SubItems.Add(dr["rTypeNum"].ToString());
item.SubItems.Add(dr["rFullDays"].ToString());
item.SubItems.Add(dr["rFullRate"].ToString());
this.ListView1.Items.AddRange(new ListViewItem[]{item});
}
//////////////////////////C#的语句///////////
CREATE PROCEDURE spRoomFullRate
@StartDate smalldatetime,
@EndDate smalldatetime
AS
SELECT b.rName,a.rTypeNum,b.rFullDays,
(CAST(
(
(CAST(b.rFullDays as decimal(5,2)))/
(CAST(a.rTypeNum as decimal(5,2)))/
(CAST(DATEDIFF(day,@StartDate,@EndDate)AS decimal(5,2)))*100
)
AS decimal(5,2)
)
)AS rFullRate
FROM
( SELECT COUNT(tblRoom.rNum) AS rTypeNum,tblRoom.rType
FROM tblRoom
GROUP BY tblRoom.rType)a,
( SELECT tblRoomType.rName,tblRoomType.rType,
(SUM(DATEDIFF(day,tblClient.cInTime,tblClient.cOutTime)))AS rFullDays
FROM tblClient,tblRoom,tblRoomType
WHERE (tblClient.cInTime between @StartDate and @EndDate)AND
(tblClient.rNum=tblRoom.rNum)AND
(tblRoom.rType=tblRoomType.rType)
GROUP BY rName,tblRoomType.rType
)b
WHERE a.rType=b.rType
GO//////////////////////////SQL的存储过程.///////////
//////////////////////////C#的语句///////////
ListView1.Columns.Add("客房类型",90,HorizontalAlignment.Center);
ListView1.Columns.Add("该类客房数",140,HorizontalAlignment.Center);
ListView1.Columns.Add("入住情况(人.天)",180,HorizontalAlignment.Center);
ListView1.Columns.Add("入住率(%)",140,HorizontalAlignment.Center);
while(dr.Read())
{
ListViewItem item = new ListViewItem(dr["rName"].ToString(),0);//这里就开始错了
item.SubItems.Add(dr["rTypeNum"].ToString());
item.SubItems.Add(dr["rFullDays"].ToString());
item.SubItems.Add(dr["rFullRate"].ToString());
this.ListView1.Items.AddRange(new ListViewItem[]{item});
}
//////////////////////////C#的语句///////////
drop procedure [dbo].[spRoomFullRate]
GO
我只是用C#来调用他的存储过程啊.
这里错误