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

    http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html



    -------------创建名为GetUserAccount的存储过程---------------- create Procedure GetUserAccountRe2 @UserName nchar(20), @UserID int output as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 select * from UserAccount return @@rowcount go -------------执行上面的存储过程---------------- exec GetUserAccountRe2 '7',null


    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;
    }
    }

    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服务器安装的日期、版本和处理器类型。

  • 相关阅读:
    $this是什么意思-成员变量和局部变量的调用
    神经网络 ML08 c-d-e
    机器学习笔记 ML01c
    虚函数
    C++有哪几种情况只能用初始化列表,而不能用赋值?
    C++ 的 I/O
    引用
    宏定义 #define 和常量 const 的区别
    怎么设置才能让外网ip可以访问mysql数据库[转]
    大师的框架面试总结[转]
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/4892891.html
Copyright © 2011-2022 走看看