您的位置:首页 > 职场人生

我是如何搞定复杂水晶报表的(4)

2009-11-27 22:40 176 查看
3、 业务逻辑层方法business.GetPaperMessage设计

[align=left] /*******************************************************[/align]
[align=left] **方 法 名:GetPaperMessage[/align]
[align=left] **输 入参数:课程号码和班级号码,教师编号[/align]
[align=left] **输 出参数:[/align]
[align=left] **返 回 值:[/align]
[align=left] **创 建 人:钱哨[/align]
[align=left] **创 建日期:08-7-9[/align]
[align=left] **描 述:通过存储过程获取试卷界面的参数信息。[/align]
[align=left] *******************************************************/[/align]
[align=left] public void GetPaperMessage(int cno, int bno, int tno, out string xqmess, out string cname, out string zy, out string nj, out string bname, out string tname, out string year1, out string month1, out string day1, out Int16 @clx_num, out string @clx_string, out int @ctime)[/align]
[align=left] {[/align]
[align=left] ///下面,开始实例化另一个命名空间的一个类[/align]
[align=left] Mydatabase DB = new Mydatabase();[/align]
[align=left] string sql = String.Format("exec proc_fdpaper " + cno + "," + bno + "," + tno + ",@xqmess output, @cname output,@zy output, @nj output,@bname output,@tname output,@year1 output,@month1 output,@day1 output,@clx_num output,@clx_string output,@ctime output");[/align]
[align=left] //执行的T-SQL串[/align]
[align=left] SqlCommand MyCommand = DB.GetProcCommand(sql);[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@xqmess", SqlDbType.VarChar, 100));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@cname", SqlDbType.VarChar, 50));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@zy", SqlDbType.VarChar, 40));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@nj", SqlDbType.VarChar, 20));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@bname", SqlDbType.VarChar, 30));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@tname", SqlDbType.VarChar, 40));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@year1", SqlDbType.VarChar, 10));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@month1", SqlDbType.VarChar, 10));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@day1", SqlDbType.VarChar, 10));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@clx_num", SqlDbType.TinyInt));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@clx_string", SqlDbType.VarChar, 10));[/align]
[align=left] MyCommand.Parameters.Add(new SqlParameter("@ctime", SqlDbType.Int));[/align]
[align=left] [/align]
[align=left] MyCommand.Parameters["@xqmess"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@cname"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@zy"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@nj"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@bname"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@tname"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@year1"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@month1"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@day1"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@clx_num"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@clx_string"].Direction = ParameterDirection.Output;[/align]
[align=left] MyCommand.Parameters["@ctime"].Direction = ParameterDirection.Output;[/align]
[align=left] [/align]
[align=left] MyCommand.ExecuteNonQuery();[/align]
[align=left] xqmess = Convert.ToString(MyCommand.Parameters["@xqmess"].Value); //接收输出的参数[/align]
[align=left] cname = Convert.ToString(MyCommand.Parameters["@cname"].Value);[/align]
[align=left] zy = Convert.ToString(MyCommand.Parameters["@zy"].Value);[/align]
[align=left] nj = Convert.ToString(MyCommand.Parameters["@nj"].Value);[/align]
[align=left] bname = Convert.ToString(MyCommand.Parameters["@bname"].Value);[/align]
[align=left] tname = Convert.ToString(MyCommand.Parameters["@tname"].Value);[/align]
[align=left] year1 = Convert.ToString(MyCommand.Parameters["@year1"].Value);[/align]
[align=left] month1 = Convert.ToString(MyCommand.Parameters["@month1"].Value);[/align]
[align=left] day1 = Convert.ToString(MyCommand.Parameters["@day1"].Value);[/align]
[align=left] clx_num = Convert.ToInt16(MyCommand.Parameters["@clx_num"].Value);[/align]
[align=left] clx_string = Convert.ToString(MyCommand.Parameters["@clx_string"].Value);[/align]
[align=left] ctime = Convert.ToInt32(MyCommand.Parameters["@ctime"].Value);[/align]
[align=left] DB.close();[/align]
[align=left]}[/align]
该方法中引用的存储过程proc_fdpaper代码如下:

[align=left]create proc proc_fdpaper[/align]
[align=left]--建立存储过程,显示改卷时候界面基本信息[/align]
[align=left]@cno int,[/align]
[align=left]@bno int,[/align]
[align=left]@tno int,[/align]
[align=left]@xqmess varchar(100) output,--学期信息[/align]
[align=left]@cname varchar(50) output,[/align]
[align=left]@zy varchar(40) output,[/align]
[align=left]@nj varchar(20) output,[/align]
[align=left]@bname varchar(30) output,[/align]
[align=left]@tname varchar(40) output,[/align]
[align=left]@year1 varchar(10) output,[/align]
[align=left]@month1 varchar(10) output,[/align]
[align=left]@day1 varchar(10) output,[/align]
[align=left]@clx_num tinyint output,[/align]
[align=left]@clx_string varchar(10) output,[/align]
[align=left]@ctime int output[/align]
[align=left]as[/align]
[align=left] [/align]
[align=left]select @xqmess=SUBSTRING(skxq,1,4)+'-'+cast((CAST (SUBSTRING(skxq,1,4) AS int)+1) as varchar(10))+'学年第'+SUBSTRING(skxq,5,1)+'学期' [/align]
[align=left]from tc [/align]
[align=left]where cno=@cno and bno=@bno[/align]
[align=left] [/align]
[align=left]select @tname=tname from teacher where tno=@tno[/align]
[align=left] [/align]
[align=left]select @cname=cname,@clx_num=clx,@ctime=ctime from course where cno=@cno[/align]
[align=left] [/align]
[align=left]set @clx_string=[/align]
[align=left]case [/align]
[align=left]when @clx_num=1 then '考查'[/align]
[align=left]when @clx_num=2 then '实习'[/align]
[align=left]when @clx_num=3 then '毕业论文'[/align]
[align=left]when @clx_num=4 then '毕业实习'[/align]
[align=left]else '考试'[/align]
[align=left]end[/align]
[align=left] [/align]
[align=left]select @zy=zy,@nj=cast(year(btime) as varchar(20)),@bname=bname from class where bno=@bno[/align]
[align=left] [/align]
[align=left]select @year1=cast(year(getdate()) as varchar(10)),@month1=cast(month(getdate()) as varchar(10)),@day1=cast(day(getdate()) as varchar(10))[/align]
[align=left] [/align]
[align=left]GO[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息