网站链接: HDHCMS 散文随笔
当前位置: 首页 >>ASP.NET >>C#基础 >>C#执行存储过程及参数传递

C#执行存储过程及参数传递

2019/1/9 11:56:30 0人评论 52次

C#执行存储过程及参数传递…

C#端执行:

string sql = " exec A存储过程  '收据编号','所属OA帐号'";

OaPaySet = DataCon.GetDataTable(sql);


存储过程源码如下:

USE [数据库]

GO

/****** Object:  StoredProcedure [dbo].[A存储过程]    Script Date: 01/09/2019 11:42:28 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author: <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

ALTER PROCEDURE  [dbo].[A存储过程]  @ReceiptNo varchar(100),@OAAdmin varchar(100)

AS

BEGIN

-------------------------------------完美分割线-------------------------------------------

--获取用户信息

declare @InvoiceDate datetime --开票日期

,@paymentName varchar(100) --付款方名称

,@IdNumber varchar(100) --身份证号码

,@PaymentMethod varchar(100) --付款方式

,@PaymentType varchar(100) --缴费类型

,@ReceivablesCompany varchar(100) --收款方公司名称

,@ReceivablesName varchar(100) --收款方姓名

,@ReceivablesNumber varchar(100) --收款流水号

,@SubjectName varchar(100) --驾照类型

,@CourseClass varchar(100) --报考班别

,@Project  varchar(100) -- 项目

,@PMoney numeric --收费金额

,@Remarks nvarchar(max) --收费备注

,@Receivables numeric --应收款

,@Receivable numeric --已收款

,@Uncollected numeric --未收款

,@ChargesInclude nvarchar(max) --收款包含项目

,@Total  numeric --合计

,@DetailsOfCharges nvarchar(max)--收费明细

,@ContractNumber nvarchar(50) --合同编号

,@CompanyPhone nvarchar(20) --公司电话

,@DotPhone varchar(20) --网点电话

,@CourseTitle nvarchar(20)--课程名称

,@NetState int --网点属性

,@DetailsOfFunds nvarchar(max) --收费明细

,@Sql nvarchar(max) --sql

-------------------------------------完美分割线-------------------------------------------

--初始化(某些字段拼接时自身为null拼接结果也为null)

set @InvoiceDate=GETDATE(); --开票日期

set @paymentName='' --付款方名称

set @IdNumber='' --身份证号码

set @PaymentMethod ='' --付款方式

set @PaymentType ='' --缴费类型

set @ReceivablesCompany ='' --收款方公司名称

set @ReceivablesName ='' --收款方姓名

set @ReceivablesNumber ='' --收款流水号

set @SubjectName ='' --驾照类型

set @CourseClass ='' --报考班别

set @Project  ='' -- 项目

set @PMoney =0 --收费金额

set @Remarks ='' --收费备注

set @Receivables =0 --应收款

set @Receivable =0 --已收款

set @Uncollected =0 --未收款

set @ChargesInclude ='' --收款包含项目

set @Total  =0 --合计

set @DetailsOfCharges='' --收费明细

set @ContractNumber='' --合同编号

set @CompanyPhone='' --公司电话

set @DotPhone='' --网点电话

set @CourseTitle='' --课程名称

set @DetailsOfFunds='' --款项明细

-------------------------------------完美分割线-------------------------------------------

--正式获取参数传入的数据  exec 德御D100000107报表 '181217001','D100000159'

--判断收据类型






declare @SmId int,@PayAccountSetName int,@PrinterId int,@StuPayAttr int

,@CourseMakeup varchar(100),@MakeupCount varchar(100),@PermitFee int

,@LearnShuttle varchar(5)





--》》》》》》》》》》》》》》》》》》流程内收据

if (select COUNT(1) from S_PZ_OaPaySet where ReceiptNo=@ReceiptNo and SmId in 

(select SmId from S_StudentManage where SmUserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3)))>0

BEGIN


select * into #OaPaySet from S_PZ_OaPaySet where ReceiptNo=@ReceiptNo and SmId in 

(select SmId from S_StudentManage where SmUserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3))


  --select '流程内'

--获取用户smid

select @SmId=SmId,@PayAccountSetName=PayAccountSetName,@StuPayAttr=StuPayAttr,@ReceivablesNumber=SerialNumber

,@ReceivablesName=TollerName from #OaPaySet

--获取收款方式

if((select COUNT(1) from(select PayAccountSetName from #OaPaySet group by PayAccountSetName)xxx)>1)

BEGIN

set @PayAccountSetName=8;

END


--交费类型

select @PMoney=SUM(ISNULL(PayMent,0)) from #OaPaySet where StuPayAttr=1

if(@PMoney=(select Tuition from S_StudentManage where SmId=@SmId))

BEGIN

set @StuPayAttr=10;

END

if(@PMoney>0 and @PMoney<>(select Tuition from S_StudentManage where SmId=@SmId))

BEGIN

set @StuPayAttr=11;

END



--收款备注(判断培训费属性是否存在,存在即显示收款备注)

if(@PMoney>0)

BEGIN

--科目包补考

select @CourseMakeup=CourseMakeup,@MakeupCount=MakeupCount,@PermitFee=PermitFee,@LearnShuttle=LearnShuttle,@CourseTitle=CourseName from S_CourseDataPhoto where SmId=@SmId

set @ChargesInclude=@ChargesInclude+(case when LEN(@CourseMakeup)>1 then 

(select SetName+'包补考('+RIGHT(LEFT(@MakeupCount,

(case when ROW_NUMBER() over(order by SetOrd ASC)>1 then ROW_NUMBER() over(order by SetOrd ASC)

+(ROW_NUMBER() over(order by SetOrd ASC)-1) else 

ROW_NUMBER() over(order by SetOrd ASC) end)

),1)+')次\  '

  from S_AdminSet where @CourseMakeup like '%'+CAST(SetId as varchar(100))+'%' and SetValue='DrvDriveTestTeacher' order by SetOrd ASC

 FOR XML PATH(''))

 else 

 (case when @CourseMakeup='1' then '补考全包\' else '' end)

  end);

  

   

 --居住证回执 包含情况

 if(@PermitFee=1)

 BEGIN

set @ChargesInclude=@ChargesInclude+'包含居住证回执费用\';

 END

END



--收费金额

select @PMoney=SUM(ISNULL(PayMent,0)) from #OaPaySet


--收款方名称

select top 1 @ReceivablesCompany=Name,@NetState=NetState from S_PZ_OaAdminBranch where Network in 

(select SmUserId from S_StudentManage where S_StudentManage.SmId=@SmId) and LEN(Code)=3

and OaUser=@OAAdmin


--驾照类型

select @SubjectName=SubjectName from S_DriverSubjects where SubjectId=

(select DriverType from S_StudentManage where SmId=@SmId)

--班别

select @CourseClass=ClassName from S_CourseClass where ClassId=

(select courseClass from S_StudentManage where SmId=@SmId)


--项目

set @Project=(SELECT '['+(case when LEN(ISNULL(PayName,''))=0 then '未填写项目名' else PayName end)+']'+'\' 

FROM #OaPaySet FOR XML PATH(''))


--应收款(分期未交金额加上当前已收金额等于应收金额+回收欠款的金额)

select @Receivables=SUM(PayMoney) from S_Pz_StagePay where SmId=@SmId and PayState=1

set @Receivables=ISNULL(@Receivables,0)+@PMoney+ISNULL((select SUM(ISNULL(PayMent,0)) from S_Pz_OaOutPayItem where SmId=@SmId and PayState=0 and StuPayAttr=4),0)



--未收款@Uncollected

select @Uncollected=SUM(PayMoney) from S_Pz_StagePay where SmId=@SmId and PayState=1

set @Uncollected=@Uncollected+ISNULL((select SUM(ISNULL(PayMent,0)) from S_Pz_OaOutPayItem where SmId=@SmId and PayState=0 and StuPayAttr=4),0)






 --付款方姓名,身份证号码

select @paymentName=Name,@IdNumber=IdNumber from S_User where UserId=

(select top 1 SmStudent from S_StudentManage where SmId=@SmId)


--收据打印时间

set @InvoiceDate=(select Top 1  CONVERT(varchar(16),ReceTime,120) from S_Pz_OaPayReceipt where SmId=@SmId and ReceiptNo=@ReceiptNo)



--收费明细

set @DetailsOfCharges=(select LEFT(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaPaySet   FOR xml path('')),1,0,''),

LEN(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaPaySet  FOR xml path('')),1,0,''))-1))

  

  

--合同编号

set @ContractNumber=isnull((select Top 1 OaPactNum from #OaPaySet),'')



--网点电话

select @DotPhone=Telephone from S_User where UserId in 

(select SmUserId from S_StudentManage where S_StudentManage.SmId=@SmId)

 

 

 

--款项明细

set @Sql='set @DetailsOfFunds=(select 

(case when PayType=0 then ''余额支付'' else 

(case when PayType=1 then ''支付宝''  else 

(case when PayType=2 then ''微信支付''  else 

(case when PayType=3 then ''现金支付''  else 

(case when PayType=4 then ''刷卡支付''  else 

(case when PayType=5 then ''鲜特汇支付''  else 

(case when PayType=8 then ''混合收款''  else 

(case when PayType=9 then ''未支付''  else ''支付类型错误'' end) end) end) end) end) end) end) end)+'':''+CAST(PayMent as varchar(20))+''\'' from(

select PayType,SUM(ISNULL(PayMent,0)) as PayMent from S_Pz_'+

@OAAdmin+'StuPayExplain where SmId='''+CAST(@SmId as varchar(20))+''' 

and ItemId in (select PayId from #OaPaySet) GROUP BY PayType

)StuPayExplain  FOR xml path('''')) '

exec sp_executesql @Sql,N'@DetailsOfFunds varchar(max) output',@DetailsOfFunds output


 

end

--select * from S_Pz_D100000159StuPayExplain where SmId='29306' and ItemId in (select PayId from #OaPaySet) FOR xml path('')




 --exec 德御D100000107报表 '181218001','D100000159'



--》》》》》》》》》》》》》》》》》》流程外收据

if (select COUNT(1) from S_Pz_OaOutPayItem where ReceiptNo=@ReceiptNo and SmId in 

(select SmId from S_StudentManage where SmUserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3)))>0

BEGIN

 --select '流程外'

 select * into #OaOutPayItem from S_Pz_OaOutPayItem where ReceiptNo=@ReceiptNo and SmId in 

(select SmId from S_StudentManage where SmUserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3))


 

 select @SmId=SmId,@PayAccountSetName=PayAccountSetName,@StuPayAttr=StuPayAttr

 ,@ReceivablesName=TollerName  from #OaOutPayItem

   --收据流水号

  select @ReceivablesNumber=SerialNo from S_PZ_OaOutReceipt where ReceiptNo=@ReceiptNo and SmId=@SmId

--付款方姓名,身份证号码

select @paymentName=Name,@IdNumber=IdNumber from S_User where UserId=

(select top 1 SmStudent from S_StudentManage where SmId=@SmId)


--获取收款方式

if((select COUNT(1) from(select PayAccountSetName from #OaOutPayItem group by PayAccountSetName)xxx)>1)

BEGIN

set @PayAccountSetName=8;

END


--交费类型

select @PMoney=SUM(ISNULL(PayMent,0)) from #OaOutPayItem where StuPayAttr=1

if(@PMoney=(select Tuition from S_StudentManage where SmId=@SmId))

BEGIN

set @StuPayAttr=10;

END

if(@PMoney>0 and @PMoney<>(select Tuition from S_StudentManage where SmId=@SmId))

BEGIN

set @StuPayAttr=11;

END




--收款备注(判断培训费属性是否存在,存在即显示收款备注)

if(@PMoney>0)

BEGIN

--科目包补考

select @CourseMakeup=CourseMakeup,@MakeupCount=MakeupCount,@PermitFee=PermitFee,@CourseTitle=CourseName from S_CourseDataPhoto where SmId=@SmId

set @ChargesInclude=@ChargesInclude+(case when LEN(@CourseMakeup)>1 then 

(select SetName+':'+RIGHT(LEFT(@MakeupCount,

(case when ROW_NUMBER() over(order by SetOrd ASC)>1 then ROW_NUMBER() over(order by SetOrd ASC)

+(ROW_NUMBER() over(order by SetOrd ASC)-1) else 

ROW_NUMBER() over(order by SetOrd ASC) end)

),1)+'  '

  from S_AdminSet where @CourseMakeup like '%'+CAST(SetId as varchar(100))+'%' and SetValue='DrvDriveTestTeacher' order by SetOrd ASC

 FOR XML PATH(''))

 else '' end);

 --居住证回执 包含情况

 if(@PermitFee=1)

 BEGIN

set @ChargesInclude=@ChargesInclude+'\ 包含居住证回执费用';

 END

END


--收费金额

select @PMoney=SUM(ISNULL(PayMent,0)) from #OaOutPayItem


--驾照类型

select @SubjectName=SubjectName from S_DriverSubjects where SubjectId=

(select DriverType from S_StudentManage where SmId=@SmId)

--班别

select @CourseClass=ClassName from S_CourseClass where ClassId=

(select courseClass from S_StudentManage where SmId=@SmId)


--项目

set @Project=(SELECT '['+(case when LEN(ISNULL(PayName,''))=0 then '未填写项目名' else PayName end)+']'+'\' 

FROM #OaOutPayItem FOR XML PATH(''))


--应收款(分期未交金额加上当前已收金额等于应收金额+回收欠款未交费金额)

select @Receivables=SUM(PayMoney) from S_Pz_StagePay where SmId=@SmId and PayState=1

set @Receivables=ISNULL(@Receivables,0)+@PMoney+ISNULL((select SUM(ISNULL(PayMent,0)) from S_Pz_OaOutPayItem where SmId=@SmId and PayState=0 and StuPayAttr=4),0)


--未收款@Uncollected

select @Uncollected=SUM(PayMoney) from S_Pz_StagePay where SmId=@SmId and PayState=1

set @Uncollected=@Uncollected+ISNULL((select SUM(ISNULL(PayMent,0)) from S_Pz_OaOutPayItem where SmId=@SmId and PayState=0 and StuPayAttr=4),0)


--收款方名称

select top 1 @ReceivablesCompany=Name,@NetState=NetState from S_PZ_OaAdminBranch where Network in 

(select SmUserId from S_StudentManage where S_StudentManage.SmId=@SmId) and LEN(Code)=3

and OaUser=@OAAdmin


--收据打印时间

set @InvoiceDate=(select Top 1  CONVERT(varchar(16),TollerTime,120) from S_Pz_OaOutPayItem where SmId=@SmId and ReceiptNo=@ReceiptNo)



--收费明细

set @DetailsOfCharges=(select LEFT(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaOutPayItem   FOR xml path('')),1,0,''),

LEN(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaOutPayItem   FOR xml path('')),1,0,''))-1))



--网点电话

select @DotPhone=Telephone from S_User where UserId in 

(select SmUserId from S_StudentManage where S_StudentManage.SmId=@SmId)





--款项明细

set @Sql='set @DetailsOfFunds=(select 

(case when PayType=0 then ''余额支付'' else 

(case when PayType=1 then ''支付宝''  else 

(case when PayType=2 then ''微信支付''  else 

(case when PayType=3 then ''现金支付''  else 

(case when PayType=4 then ''刷卡支付''  else 

(case when PayType=5 then ''鲜特汇支付''  else 

(case when PayType=8 then ''混合收款''  else 

(case when PayType=9 then ''未支付''  else ''支付类型错误'' end) end) end) end) end) end) end) end)+'':''+CAST(PayMent as varchar(20))+''\'' from(

select PayType,SUM(ISNULL(PayMent,0)) as PayMent from S_Pz_'+

@OAAdmin+'StuPayExplain where SmId='''+CAST(@SmId as varchar(20))+''' 

and ItemId in (select ItemId from #OaOutPayItem) GROUP BY PayType

)StuPayExplain  FOR xml path('''')) '

exec sp_executesql @Sql,N'@DetailsOfFunds varchar(max) output',@DetailsOfFunds output




end



--》》》》》》》》》》》》》》》》非学员收据

if (select COUNT(1) from S_Pz_OaOutPayItem where ReceiptNo=@ReceiptNo and PrinterId in 

(select PrinterId from S_Pz_OaPrinterInfo where UserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3)))>0

BEGIN


select * into #OaOutPayIteminfo from S_Pz_OaOutPayItem where ReceiptNo=@ReceiptNo and PrinterId in 

(select PrinterId from S_Pz_OaPrinterInfo where UserId in 

(select Network from S_PZ_OaAdminBranch where OaUser=@OAAdmin and LEN(Code)=3))

 -- select '非学员'

  select @PrinterId=PrinterId,@PayAccountSetName=PayAccountSetName,@StuPayAttr=StuPayAttr

  ,@ReceivablesName=TollerName from #OaOutPayIteminfo

  --收据流水号

  select @ReceivablesNumber=SerialNo from S_PZ_OaOutReceipt where ReceiptNo=@ReceiptNo and SmId=@SmId

  

  --付款方姓名,身份证号码

select @paymentName=Name,@IdNumber=IdNumber from S_Pz_OaPrinterInfo where PrinterId=@PrinterId

  

  --收费金额

select @PMoney=SUM(ISNULL(PayMent,0)) from #OaOutPayIteminfo


--收款方名称

select top 1 @ReceivablesCompany=Name,@NetState=NetState from S_PZ_OaAdminBranch where Network in 

(select UserId from S_Pz_OaPrinterInfo where PrinterId=@PrinterId) and LEN(Code)=3

and OaUser=@OAAdmin

--项目

set @Project=(SELECT '['+(case when LEN(ISNULL(PayName,''))=0 then '未填写项目名' else PayName end)+']'+'\' 

FROM #OaOutPayIteminfo FOR XML PATH('')) 

  

  

--应收款(分期未交金额加上当前已收金额等于应收金额)

set @Receivables=ISNULL(@Receivables,0)+@PMoney


--收费明细

set @DetailsOfCharges=(select LEFT(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaOutPayIteminfo   FOR xml path('')),1,0,''),

LEN(stuff((select distinct PayName+CAST(PayMent as varchar)+'整。'+'/' from #OaOutPayIteminfo  FOR xml path('')),1,0,''))-1))

  

--网点电话

select @DotPhone=Telephone from S_User where UserId in 

(select UserId from S_Pz_OaPrinterInfo where PrinterId=@PrinterId) 



--款项明细

set @Sql='set @DetailsOfFunds=(select 

(case when PayType=0 then ''余额支付'' else 

(case when PayType=1 then ''支付宝''  else 

(case when PayType=2 then ''微信支付''  else 

(case when PayType=3 then ''现金支付''  else 

(case when PayType=4 then ''刷卡支付''  else 

(case when PayType=5 then ''鲜特汇支付''  else 

(case when PayType=8 then ''混合收款''  else 

(case when PayType=9 then ''未支付''  else ''支付类型错误'' end) end) end) end) end) end) end) end)+'':''+CAST(PayMent as varchar(20))+''\'' from(

select PayType,SUM(ISNULL(PayMent,0)) as PayMent from S_Pz_'+

@OAAdmin+'StuPayExplain where SmId='''+CAST(@SmId as varchar(20))+''' 

and ItemId in (select ItemId from #OaOutPayIteminfo) GROUP BY PayType

)StuPayExplain  FOR xml path('''')) '

exec sp_executesql @Sql,N'@DetailsOfFunds varchar(max) output',@DetailsOfFunds output




end




-------------------------------公共属性------------------------

--付款方式

select @PaymentMethod=(case when @PayAccountSetName='0' then '余额支付' else 

(case when @PayAccountSetName='1' then '支付宝' else 

(case when @PayAccountSetName='2' then '微信支付' else 

(case when @PayAccountSetName='3' then '现金支付' else 

(case when @PayAccountSetName='4' then '刷卡支付' else 

(case when @PayAccountSetName='5' then '鲜特汇支付' else 

(case when @PayAccountSetName='8' then '混合收款' else 

(case when @PayAccountSetName='9' then '未支付' else '未知类型' end) end) end) end) end) end) end) end)

--交费类型(一次性付款【全款】)


set @PaymentType=(case when @StuPayAttr='1' then '培训费' else 

(case when @StuPayAttr='2' then '补考费' else 

(case when @StuPayAttr='3' then '代缴费' else 

(case when @StuPayAttr='4' then '回收欠款' else 

(case when @StuPayAttr='5' then '代办居住证' else 

(case when @StuPayAttr='6' then '重考险' else 

(case when @StuPayAttr='9' then '其它费用' else 

(case when @StuPayAttr='10' then '一次性付款(全款)' else 

(case when @StuPayAttr='11' then '分期付款(首期交费/余款交费)' else '未知类型' end) end) end) end) end) end) end) end) end) 



--已收款

set @Receivable=@PMoney

--合计

set @Total=@PMoney




--公司电话

select @CompanyPhone=Telephone from S_User where UserId=@OAAdmin















if exists (select * from dbo.sysobjects where id = object_id(N'#OaPaySet') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table #OaPaySet

if exists (select * from dbo.sysobjects where id = object_id(N'#OaOutPayItem') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table  #OaOutPayItem

if exists (select * from dbo.sysobjects where id = object_id(N'#OaOutPayIteminfo') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table  #OaOutPayIteminfo

if exists (select * from dbo.sysobjects where id = object_id(N'#StuPayE') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table #StuPayE


if(@Uncollected is null)

set @Uncollected=0


if(@ChargesInclude is not null or LEN(@ChargesInclude)>0)

set @ChargesInclude='收费包含:'+@ChargesInclude;


if(@ChargesInclude is null or LEN(@ChargesInclude)=0)

set @ChargesInclude=''

if(@InvoiceDate is null or LEN(@InvoiceDate)=0)

set @InvoiceDate=GETDATE(); --开票日期




--旧版本数据显示




--数据显示

select 

@InvoiceDate as [XXMC1] --开票日期

,@paymentName as [XXMC2] --付款方名称

,@IdNumber as [XXMC3] --身份证号码

,@PaymentMethod as [XXMC4] --付款方式

,@PaymentType as [XXMC28] --缴费类型

,@ReceivablesCompany as [XXMC6] --收款方公司名称

,@ReceivablesName as [XXMC5] --收款方姓名

,@ReceivablesNumber as [XXMC7] --收款流水号

,@SubjectName as [XXMC8] --驾照类型

,@CourseClass as [XXMC23] --报考班别

,@Project  as [XXMC9] -- 项目

,@PMoney as [XXMC10] --收费金额

,@Remarks as [XXMC27] --收费备注

,@Receivables as [XXMC18] --应收款

,@Receivable as [XXMC16] --已收款

,@Receivable as [XXMC17] --已收款

,@Uncollected as [XXMC15] --未收款

,@ChargesInclude as [XXMC26] --收款包含项目

,@Total as [XXMC13] --合计

,@DetailsOfCharges as [XXMC11]--收费明细

,@ContractNumber as [XXMC14] --合同编号

,@CompanyPhone as [XXMC19] --公司电话

,@DotPhone as [XXMC20] --网点电话

,@CourseTitle as [XXMC22]--课程名称

,@NetState as [NetState] --网点属性

,@DetailsOfFunds as [XXMC25] --收费明细

,'' as [XXMC21] --收据第四项

,@ReceiptNo as [XXMC24] --收据编号

END



--exec A存储过程  '181223011','D100000098'




上一篇:没有了

下一篇:C# FTP操作类

相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com