using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace WindowsApplication1
{
    class Buessiness
    {
        ///下面，开始实例化另一个命名空间的一个类
        Mydatabase DB = new Mydatabase();
        /*******************************************************
       **方 法  名：Getteacherinfo
       **输 入参数：int id教师主键
       **输 出参数：out int dno教师系编号, out int xb教师性别编号, out string zc教师职称,out string degree教师学位
       **返 回  值：无
       **创 建  人：钱哨
       **创 建日期：08-7-9
       **描     述：通过存储过程逻辑查询教师具体信息。
       *******************************************************/

        public void Getteacherinfo(int id, out int dno, out int xb, out string zc, out string degree, out string dname, out string tname)
        {
            
            //下面建立执行存储过程的字符串，一般建议该存储过程的执行最好在查询分析器之中执行通过，同时保证执行参数名称的正确。
            string sql = String.Format("exec proc_find_teachermess " + id.ToString() + " ,@dno output,@xb output,@zc output,@degree output,@dname output,@tname output");
            //执行的T-SQL串
            SqlCommand MyCommand = DB.GetProcCommand(sql);
            MyCommand.Parameters.Add(new SqlParameter("@dno", SqlDbType.Int));
            MyCommand.Parameters.Add(new SqlParameter("@xb", SqlDbType.SmallInt));
            MyCommand.Parameters.Add(new SqlParameter("@zc", SqlDbType.VarChar, 20));
            MyCommand.Parameters.Add(new SqlParameter("@degree", SqlDbType.VarChar, 20));
            MyCommand.Parameters.Add(new SqlParameter("@dname", SqlDbType.VarChar, 30));
            MyCommand.Parameters.Add(new SqlParameter("@tname", SqlDbType.VarChar, 20));


            MyCommand.Parameters["@dno"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@xb"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@zc"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@degree"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@dname"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@tname"].Direction = ParameterDirection.Output;
            MyCommand.ExecuteNonQuery();

            dno = Convert.ToInt16(MyCommand.Parameters["@dno"].Value);　//接收输出的参数
            xb = Convert.ToInt16(MyCommand.Parameters["@xb"].Value);
            zc = Convert.ToString(MyCommand.Parameters["@zc"].Value);
            degree = Convert.ToString(MyCommand.Parameters["@degree"].Value);
            dname = Convert.ToString(MyCommand.Parameters["@dname"].Value);
            tname = Convert.ToString(MyCommand.Parameters["@tname"].Value);
        }
        /*******************************************************
        **方 法  名：GetSendCourse
        **输 入参数：派课编号
        **输 出参数：
        **返 回  值：
        **创 建  人：钱哨
        **创 建日期：08-7-9
        **描     述：通过存储过程逻辑查询某个派课信息的各种结果值。
        *******************************************************/

        public void GetCourselist(int id, out int cno, out int tno, out string skxq, out int sktime, out int bno, out string tname, out string cname, out string bname, out string skxqn, out int zt, out int schno, out string schname, out int stunum, out int yy, out int wy, out int ztbk, out int stunumbk, out int yybk, out int wybk, out int ztqk, out int stunumqk, out int yyqk, out int wyqk)
        {
            cno=0; tno=0; sktime=0; bno=0; zt=0; schno=0; stunum=0; yy=0; wy=0; ztbk=0; stunumbk=0; yybk=0; wybk=0; ztqk=0; stunumqk=0; yyqk=0; wyqk=0;
            skxq = ""; tname = ""; cname = ""; bname = ""; skxqn = ""; schname = "";
            if (id > 0)
            {
                string sql = String.Format("exec proc_find_sendcourse " + id + ",@cno output, @tno output,@skxq output, @sktime output,@bno output,@tname output,@cname output,@bname output,@skxqn output,@zt output,@schno output,@schname output,@stunum output,@yy output,@wy output, @ztbk output, @stunumbk output, @yybk output, @wybk output, @ztqk output, @stunumqk output, @yyqk output, @wyqk output");
                //执行的T-SQL串
                SqlCommand MyCommand = DB.GetProcCommand(sql);
                MyCommand.Parameters.Add(new SqlParameter("@cno", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@tno", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@skxq", SqlDbType.VarChar, 10));
                MyCommand.Parameters.Add(new SqlParameter("@sktime", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@bno", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@tname", SqlDbType.VarChar, 30));
                MyCommand.Parameters.Add(new SqlParameter("@cname", SqlDbType.VarChar, 30));
                MyCommand.Parameters.Add(new SqlParameter("@bname", SqlDbType.VarChar, 30));
                MyCommand.Parameters.Add(new SqlParameter("@skxqn", SqlDbType.VarChar, 30));
                MyCommand.Parameters.Add(new SqlParameter("@zt", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@schno", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@schname", SqlDbType.VarChar, 30));
                MyCommand.Parameters.Add(new SqlParameter("@stunum", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@yy", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@wy", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@ztbk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@stunumbk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@yybk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@wybk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@ztqk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@stunumqk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@yyqk", SqlDbType.Int));
                MyCommand.Parameters.Add(new SqlParameter("@wyqk", SqlDbType.Int));


                MyCommand.Parameters["@cno"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@tno"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@skxq"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@sktime"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@bno"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@tname"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@cname"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@bname"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@skxqn"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@zt"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@schno"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@schname"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@stunum"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@yy"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@wy"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@ztbk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@stunumbk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@yybk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@wybk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@ztqk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@stunumqk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@yyqk"].Direction = ParameterDirection.Output;
                MyCommand.Parameters["@wyqk"].Direction = ParameterDirection.Output;


                MyCommand.ExecuteNonQuery();

                cno = Convert.ToInt16(MyCommand.Parameters["@cno"].Value);　//接收输出的参数
                tno = Convert.ToInt16(MyCommand.Parameters["@tno"].Value);
                skxq = Convert.ToString(MyCommand.Parameters["@skxq"].Value);
                sktime = Convert.ToInt16(MyCommand.Parameters["@sktime"].Value);
                bno = Convert.ToInt16(MyCommand.Parameters["@bno"].Value);
                tname = Convert.ToString(MyCommand.Parameters["@tname"].Value);
                cname = Convert.ToString(MyCommand.Parameters["@cname"].Value);
                bname = Convert.ToString(MyCommand.Parameters["@bname"].Value);
                skxqn = Convert.ToString(MyCommand.Parameters["@skxqn"].Value);
                zt = Convert.ToInt16(MyCommand.Parameters["@zt"].Value);
                schno = Convert.ToInt16(MyCommand.Parameters["@schno"].Value);
                schname = Convert.ToString(MyCommand.Parameters["@schname"].Value);
                stunum = Convert.ToInt16(MyCommand.Parameters["@stunum"].Value);
                yy = Convert.ToInt16(MyCommand.Parameters["@yy"].Value);
                wy = Convert.ToInt16(MyCommand.Parameters["@wy"].Value);


                ztbk = Convert.ToInt16(MyCommand.Parameters["@ztbk"].Value);
                stunumbk = Convert.ToInt16(MyCommand.Parameters["@stunumbk"].Value);
                yybk = Convert.ToInt16(MyCommand.Parameters["@yybk"].Value);
                wybk = Convert.ToInt16(MyCommand.Parameters["@wybk"].Value);
                ztqk = Convert.ToInt16(MyCommand.Parameters["@ztqk"].Value);
                stunumqk = Convert.ToInt16(MyCommand.Parameters["@stunumqk"].Value);
                yyqk = Convert.ToInt16(MyCommand.Parameters["@yyqk"].Value);
                wyqk = Convert.ToInt16(MyCommand.Parameters["@wyqk"].Value);

                DB.close();
            }
        }

    }
}
