.NET VS 调用 Sql Server 存储过程

一、创建存储过程

    数据库——可编程性——存储过程——右击创建存储过程——写入Sql

二、编写调用存储过程基类

//调用SQL存储过程 Proc_BS   
        //strProc 存储过程名称
        //int 参数名
        public int ExecuteProcGetParm(string strProc, int scaleC, int scaleAB, int scaleC_1, int scaleAB_1)
        {
            using (SqlCommand cmd = new SqlCommand(strProc, connection))
            {
                try
                {
                    cmd.CommandText = strProc;// "Proc_BS";
                    cmd.CommandType = CommandType.StoredProcedure;


                    SqlParameter parm = cmd.Parameters.Add("@scaleC", SqlDbType.Int);
                    parm.Value = scaleC;

                    parm = cmd.Parameters.Add("@scaleAB", SqlDbType.Int);
                    parm.Value = scaleAB;

                    parm = cmd.Parameters.Add("@scaleC_1", SqlDbType.Int);
                    parm.Value = scaleC_1;

                    parm = cmd.Parameters.Add("@scaleAB_1", SqlDbType.Int);
                    parm.Value = scaleAB_1;

                    parm = cmd.Parameters.Add("@rowcount", SqlDbType.Int);
                    parm.Direction = ParameterDirection.Output;//返回参数 

                    if (connection.State == ConnectionState.Closed)
                    {
                        connection.Open();
                        SqlDataReader dr = cmd.ExecuteReader();
                        int rows = int.Parse(cmd.Parameters["@rowcount"].Value.ToString()); //cmd.ExecuteNonQuery();
                        connection.Close();
                        return rows;
                    }

                    return 0;
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }

三、调用

 返回参数 = ds.ExecuteProcGetParm("存储过程名称", scaleC, scaleAB, scaleC_1, scaleAB_1);

猜你喜欢

转载自my.oschina.net/u/3569028/blog/1596304