我有个存储过程。是公交查询的
简单写下:CREATE proc AllInquiry(@StartStops varchar(2048),@EndStops varchar(2048))
as
begin
exec GInquiryT0 @StartStops,@EndStops--(这里返回的数据有3列:起点,终点,路线)
if(@@rowcount=0)
begin
exec GInquiryT1 @StartStops,@EndStops--(这里返回的数据有5列:起点,路线1,中转站,路线2,路线,终点)
if(@@rowcount=0)
begin
exec GInquiryT2_1 @StartStops,@EndStops---(这里返回的数据有7列:起点,路线1,中转站1,路线2,中转站2,路线3,终点)
end
end
end我就是把这3个存储过程弄成了一个,首先查询无换乘情况,然后是1次换乘,接下来就是二次换乘。
我在C#中用一个方法来接收,发现数据返回的参数不同,不知道如何处理。
简单写下:CREATE proc AllInquiry(@StartStops varchar(2048),@EndStops varchar(2048))
as
begin
exec GInquiryT0 @StartStops,@EndStops--(这里返回的数据有3列:起点,终点,路线)
if(@@rowcount=0)
begin
exec GInquiryT1 @StartStops,@EndStops--(这里返回的数据有5列:起点,路线1,中转站,路线2,路线,终点)
if(@@rowcount=0)
begin
exec GInquiryT2_1 @StartStops,@EndStops---(这里返回的数据有7列:起点,路线1,中转站1,路线2,中转站2,路线3,终点)
end
end
end我就是把这3个存储过程弄成了一个,首先查询无换乘情况,然后是1次换乘,接下来就是二次换乘。
我在C#中用一个方法来接收,发现数据返回的参数不同,不知道如何处理。
如果我是用泛型来接收呢?我之前是这样写的,写了一半,发现不行了。 public IList<GRouteT0Info> AllInquiry(GRouteT0Info gRouteT0Info)
{
SqlParameter[] sqlParameter = {
new SqlParameter("@StartStops", gRouteT0Info.StartStops),
new SqlParameter("@EndStops", gRouteT0Info.EndStops)
};
IList<GRouteT0Info> groute = new List<GRouteT0Info>();
using (SqlDataReader dataReader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "AllInquiry", sqlParameter))
{
while (dataReader.Read())
{
GRouteT0Info gr = new GRouteT0Info(dataReader.GetString(0),dataReader.GetString(1),);
}
}
return null;
}
存储过程多,每个一个table