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

    本文将会提供一个入门的阶梯

    跟着下面的过程我们来实现一个存储过程的完整流程

    第一步:首先在数据库的可编程性的下级子目录的存储过程下写一个存储过程

    /*****************************自动生成部分
    USE [aking]          
    GO
    /****** Object:  StoredProcedure [dbo].[akingstoredprocedure]    Script Date: 07/18/2012 10:19:07  这些是 SQL-92 设置语句,
    使 SQL Server 2000/2005 遵从 SQL-92 规则。 *****
    */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /************************************************************************ ALTER proc [dbo].[akingstoredprocedure] /########变量定义部分1-5为定义的传入参数,6为付出参数######### @para1 nchar(10),@para2 nchar(10), @para3 nchar(10),@para4 nchar(10), @para5 nchar(10) ,@para6 int output /####################################### as insert useinfo(id,username,sex,email,phone) values (@para1,@para2,@para3,@para4,@para5) select @para6=COUNT(id) from dbo.useinfo

    上面定义了一个简单的存储过程定义了5个变量用于赋值,@para6用于数出选中的条数。由此我们完成了一个存储过程的编写,该存储过程是往aking数据库中插入一个数据,并传出一个参数。

    第二步:下面就得在后台中调用该存储过程大家自己从下面罗列过程

    public  int  Store(string[] array)
            {
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Services"].ToString());
                          //此处是从Webconfig中读取数据库的连接
                SqlCommand cmd = new SqlCommand("akingstoredprocedure", conn);
                          //此处为存储过程名
                cmd.CommandType = CommandType.StoredProcedure;//绝对不可以省略       
                cmd.Connection = conn;
                SqlParameter[] para = {
                                         new SqlParameter("@para1", SqlDbType.NChar),
                                         new SqlParameter("@para2", SqlDbType.NChar),
                                         new SqlParameter("@para3", SqlDbType.NChar),
                                         new SqlParameter("@para4", SqlDbType.NChar),
                                         new SqlParameter("@para5", SqlDbType.NChar),
                                         new SqlParameter("@para6", SqlDbType.Int)
                                      };
                para[0].Value = array[0];
                para[1].Value = array[1];
                para[2].Value = array[2];
                para[3].Value = array[3];
                para[4].Value = array[4];
                para[5].Direction = ParameterDirection.Output;//设置传出参数6为输出参数
                foreach (SqlParameter c in para)
                {
                    cmd.Parameters.Add(c); //往存储过程中传值
                }
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = cmd;  //执行存储过程
                DataSet ds = new DataSet();
                sda.Fill(ds);
               
                conn.Close();
                int total = int.Parse(cmd.Parameters[5].Value.ToString());//此处是存储过程传出的参数值,是个Object类型
                return total;
            }
        }
  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/akingyao/p/2678660.html
Copyright © 2011-2022 走看看