存储过程起步

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

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

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

/*****************************自动生成部分

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;

        }

    }

 

你可能感兴趣的:(存储过程)