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

本文介绍了一个基于存储过程的教师信息查询方法,通过C#代码调用SQL Server存储过程获取教师详细信息及派课详情。
(接上节代码)
//===============建立数据库类文件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,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值