zoukankan      html  css  js  c++  java
  • c#调用存储过程

    public partial class ProcedureTest : System.Web.UI.Page
        {
            public static  string conn = ConfigurationManager.ConnectionStrings["StuRelationDBConnectionString"].ConnectionString;
            public SqlConnection con = new SqlConnection(conn);
            protected void Page_Load(object sender, EventArgs e)
            {
                runGetUserAccountRe3();
            }

            //只返回单一记录集的存储过程GetUserAccount
            public void runGetUserAccount()
            {
                SqlDataAdapter dp = new SqlDataAdapter(common("GetUserAccount"));
                DataSet ds = new DataSet();
                // 填充dataset
                dp.Fill(ds);
                rpt.DataSource = ds;
                rpt.DataBind();

            }

            //没有输入输出的存储过程inUserAccount
            public void runinUserAccount()
            {            
                con.Open();
                Label1.Text = common("inUserAccount").ExecuteNonQuery().ToString();
                con.Close();
            }

            //有返回值的存储过程inUserAccountRe
            public void runinUserAccountRe()
            {
                // 创建参数
                SqlCommand cmd = common("inUserAccountRe");
                IDataParameter[] parameters = {
                     new SqlParameter("rval", SqlDbType.Int,4)
                 };
                // 将参数类型设置为 返回值类型
                parameters[0].Direction = ParameterDirection.ReturnValue;
                // 添加参数
                cmd.Parameters.Add(parameters[0]);
                con.Open();
                // 执行存储过程并返回影响的行数
                Label1.Text = cmd.ExecuteNonQuery().ToString();
                con.Close();
                // 显示影响的行数和返回值
                Label1.Text += "-" + parameters[0].Value.ToString();
            }

            //有输入参数和输出参数的存储过程
            public void runGetUserAccountRe()
            {
                SqlCommand cmd = common("GetUserAccountRe");
                // 创建参数
                IDataParameter[] parameters = {
                     new SqlParameter("@UserName", SqlDbType.NChar,20) ,
                     new SqlParameter("@UserID", SqlDbType.Int) ,
                 };
                // 设置参数类型
                parameters[0].Value = "7";  
                parameters[1].Direction = ParameterDirection.Output;  // 设置为输出参数
                // 添加参数
                cmd.Parameters.Add(parameters[0]);
                cmd.Parameters.Add(parameters[1]);
                con.Open();
                // 执行存储过程并返回影响的行数
                Label1.Text = cmd.ExecuteNonQuery().ToString();
                con.Close();           
                // 显示影响的行数和输出参数
                Label1.Text += "-" + parameters[1].Value.ToString();
               
            }

            //同时具有返回值、输入参数、输出参数的存储过程GetUserAccountRe1
            public void runGetUserAccountRe1()
            {
                SqlCommand cmd = common("GetUserAccountRe1");
                // 创建参数
                IDataParameter[] parameters = {
                     new SqlParameter("@UserName", SqlDbType.NChar,20) ,
                     new SqlParameter("@UserID", SqlDbType.Int) ,
                     new SqlParameter("rval", SqlDbType.Int,4)
                 };
                // 设置参数类型
                parameters[0].Value = "7";
                parameters[1].Direction = ParameterDirection.Output;  // 设置为输出参数
                parameters[2].Direction = ParameterDirection.ReturnValue;  //设置为返回值
                // 添加参数
                cmd.Parameters.Add(parameters[0]);
                cmd.Parameters.Add(parameters[1]);
                cmd.Parameters.Add(parameters[2]);
                con.Open();
                // 执行存储过程并返回影响的行数
                Label1.Text = cmd.ExecuteNonQuery().ToString();
                con.Close();
                // 显示影响的行数和输出参数
                Label1.Text += "-输出参数为:" + parameters[1].Value.ToString();
                Label1.Text += "-返回值为:" + parameters[2].Value.ToString();

            }

            //同时返回参数和记录集的存储过程GetUserAccountRe2
            public void runGetUserAccountRe2()
            {
                SqlCommand cmd = common("GetUserAccountRe2");
                // 创建参数
                IDataParameter[] parameters = {
                     new SqlParameter("@UserName", SqlDbType.NChar,20) ,
                     new SqlParameter("@UserID", SqlDbType.Int) ,
                     new SqlParameter("rval", SqlDbType.Int,4)
                 };
                // 设置参数类型
                parameters[0].Value = "7";
                parameters[1].Direction = ParameterDirection.Output;  // 设置为输出参数
                parameters[2].Direction = ParameterDirection.ReturnValue;  //设置为返回值
                // 添加参数
                cmd.Parameters.Add(parameters[0]);
                cmd.Parameters.Add(parameters[1]);
                cmd.Parameters.Add(parameters[2]);
                con.Open();
                // 执行存储过程并返回影响的行数
                Label1.Text = cmd.ExecuteNonQuery().ToString();
                DataSet ds = new DataSet();
                SqlDataAdapter dt = new SqlDataAdapter(cmd);
                dt.Fill(ds);
                rpt.DataSource = ds;
                rpt.DataBind();
                con.Close();
                // 显示影响的行数和输出参数
                Label1.Text += "-输出参数为:" + parameters[1].Value.ToString();
                Label1.Text += "-返回值为:" + parameters[2].Value.ToString();

            }

            //返回多个记录集的存储过程
            public void runGetUserAccountRe3()
            {
                DataSet ds = new DataSet();
                SqlDataAdapter dt = new SqlDataAdapter(common("GetUserAccountRe3"));
                dt.Fill(ds);
                rpt1.DataSource = ds.Tables[0].DefaultView;
                rpt1.DataBind();
                rpt2.DataSource = ds.Tables[1].DefaultView;
                rpt2.DataBind();
            }
            
            public SqlCommand common(string proName)
            {
                
                SqlCommand cmd = new SqlCommand();
                // 设置sql连接
                cmd.Connection = con;            
                // 如果执行语句
                cmd.CommandText = proName;
                // 指定执行语句为存储过程
                cmd.CommandType = CommandType.StoredProcedure;
                return cmd;
            }
        }

    附带SQLServer数据库的一些全局变量

    select APP_NAME ( ) as w --当前会话的应用程序

    select @@IDENTITY   --返回最后插入的标识值
    select USER_NAME()    --返回用户数据库用户名

    SELECT @@CONNECTIONS  --返回自上次SQL启动以来连接或试图连接的次数。
    SELECT GETDATE() --当前时间
    SELECT @@CPU_BUSY/100  --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒

    USE tempdb SELECT @@DBTS  as w  --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。
    select @@IDENTITY as w --返回最后插入的标识值
    SELECT @@IDLE  as w  --返回SQL自上次启动后闲置的时间,单位为毫秒
    SELECT @@IO_BUSY AS w   --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒
    SELECT @@LANGID AS w   --返回当前所使用语言的本地语言标识符(ID)。
    SELECT @@LANGUAGE AS w   --返回当前使用的语言名
    SELECT @@LOCK_TIMEOUT as w  --当前会话的当前锁超时设置,单位为毫秒。
    SELECT @@MAX_CONNECTIONS  as w  --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值
    EXEC sp_configure  --显示当前服务器的全局配置设置
    SELECT @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。
    select @@OPTIONS  as w  --返回当前 SET 选项的信息。
    SELECT @@PACK_RECEIVED as w  --返回SQL自启动后从网络上读取的输入数据包数目。
    SELECT @@PACK_SENT as w  --返回SQ自上次启动后写到网络上的输出数据包数目。
    SELECT @@PACKET_ERRORS as w  --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。
    SELECT @@SERVERNAME as w --返回运行SQL服务器名称。
    SELECT @@SERVICENAME  as w --返回SQL正在其下运行的注册表键名
    SELECT @@TIMETICKS  as w --返回SQL服务器一刻度的微秒数
    SELECT @@TOTAL_ERRORS AS w  --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。
    SELECT @@TOTAL_READ  as w  --返回 SQL服务器自启动后读取磁盘的次数。
    SELECT @@TOTAL_WRITE as w  --返回SQL服务器自启动后写入磁盘的次数。
    SELECT @@TRANCOUNT  as w  --返回当前连接的活动事务数。
    SELECT @@VERSION as w  --返回SQL服务器安装的日期、版本和处理器类型。

    转载原文:http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html

  • 相关阅读:
    解决云服务器ECS,windows server 2012不能安装SQL Server 2012,不能安装.NET Fromework 3.5
    html5中checkbox的选中状态的设置与获取
    sql server 韩文查询匹配失败
    管理nuget程序包中搜索不到任何程序包
    ftp下出现“当前的安全设置不允许从该位置下载文件”提示
    windows server 2012 下IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法
    服务器升级后访问网站资源返回404
    centos7yum的更新与优化
    linux(centos7)命令提示符优化
    检查vmware虚拟软件服务是否开启?
  • 原文地址:https://www.cnblogs.com/lizihong/p/4318308.html
Copyright © 2011-2022 走看看