4-2 ADO.NET-查询和检索数据12

(接上节代码)
//===============建立数据库类文件BuessinessLayer.cs====================
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, outint 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();
            }
        }
    }
}
u实验步骤(5):
鼠标右击项目,在弹出的菜单中选择“添加”、“新建项”,在弹出的“添加新项”窗体中选择“代码文件”,名称改为“DataBaseLayer.cs,点击“添加”按钮,完成添加。该文件在前面已有论述,此处不再复述。
u实验步骤(6):
用鼠标双击各个Button控件,进入.cs文件编辑状态准备进行开发。代码加下:
 




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/216111,如需转载请自行联系原作者

上一篇:Navicat for MySQL出现1030-Got error 28 from storage engine错误


下一篇:.NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用