dal层:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Model;
using DBUtility;
using Utility;namespace DAL
{
   public class datasql
    {       public void updatauser(UserInfo userInfo)
       {           SqlParameter[] parms = new SqlParameter[]
           {
             
               new SqlParameter("@p_name",SqlDbType.VarChar,50),
               new SqlParameter("@p_sex",SqlDbType.VarChar,50),
               new SqlParameter("@p_e_mail",SqlDbType.VarChar,50),
               new SqlParameter("@p_nowplace",SqlDbType.VarChar,50),
               new SqlParameter("@p_birthday",SqlDbType.DateTime),
               new SqlParameter("@p_province",SqlDbType.VarChar,50),
               new SqlParameter("@p_city",SqlDbType.VarChar,50),
           };           parms[0].Value = userInfo.Name;
           parms[1].Value = userInfo.Sex;
           parms[2].Value = userInfo.E_mail;
           parms[3].Value = userInfo.Nowplace;
           parms[4].Value = userInfo.Birthday;
           parms[5].Value = userInfo.Province;
           parms[6].Value = userInfo.City;           sqlhelper.RunProc("Updatebaseinfo", parms);
       
       }
    }  
}sqlhelper:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Collections;
using System.Data.SqlClient;
using System.Collections.Generic;namespace DBUtility
{  
    public abstract class sqlhelper
    {
        private SqlConnection con;       
        public int RunProc(string procName)
        {
            SqlCommand cmd = CreateCommand(procName, null);
            cmd.ExecuteNonQuery();
            this.Close();
            return (int)cmd.Parameters["ReturnValue"].Value;
        }              public  int RunProc(string procName, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateCommand(procName, prams);
            cmd.ExecuteNonQuery();
            this.Close();
            return (int)cmd.Parameters["ReturnValue"].Value;
        }        /**/
        /// <summary> 
        /// 执行存储过程 
        /// </summary> 
        /// <param name="procName">存储过程的名称</param> 
        /// <param name="dataReader">返回存储过程返回值</param> 
        public void RunProc(string procName, out SqlDataReader dataReader)
        {
            SqlCommand cmd = CreateCommand(procName, null);
            dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            //return (int)cmd.Parameters["ReturnValue"].Value; 
        }        /**/
        /// <summary> 
        /// 执行存储过程 
        /// </summary> 
        /// <param name="procName">存储过程的名称</param> 
        /// <param name="prams">存储过程所需参数</param> 
        /// <param name="dataReader">存储过程所需参数</param> 
        public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
        {
            SqlCommand cmd = CreateCommand(procName, prams);
            dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            //return (int)cmd.Parameters["ReturnValue"].Value; 
        }        /**/
        /// <summary> 
        /// 创建一个SqlCommand对象以此来执行存储过程 
        /// </summary> 
        /// <param name="procName">存储过程的名称</param> 
        /// <param name="prams">存储过程所需参数</param> 
        /// <returns>返回SqlCommand对象</returns> 
        private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
        {
            // 确认打开连接 
            Open();
            SqlCommand cmd = new SqlCommand(procName, con);
            cmd.CommandType = CommandType.StoredProcedure;            // 依次把参数传入存储过程 
            if (prams != null)
            {
                foreach (SqlParameter parameter in prams)
                    cmd.Parameters.Add(parameter);
            }            // 加入返回参数 
            cmd.Parameters.Add(
                new SqlParameter("ReturnValue", SqlDbType.Int, 4,
                ParameterDirection.ReturnValue, false, 0, 0,
                string.Empty, DataRowVersion.Default, null));            return cmd;
        }        /**/
        /// <summary> 
        /// 打开数据库连接. 
        /// </summary> 
        private void Open()
        {
            // 打开数据库连接 
            if (con == null)
            {
                con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
            }
            if (con.State == System.Data.ConnectionState.Closed)
                con.Open();        }        /**/
        /// <summary> 
        /// 关闭数据库连接 
        /// </summary> 
        public void Close()
        {
            if (con != null)
                con.Close();
        }        /**/
        /// <summary> 
        /// 释放资源 
        /// </summary> 
        public void Dispose()
        {
            // 确认连接是否已经关闭 
            if (con != null)
            {
                con.Dispose();
                con = null;
            }
        }        /**/
        /// <summary> 
        /// 传入输入参数 
        /// </summary> 
        /// <param name="ParamName">存储过程名称</param> 
        /// <param name="DbType">参数类型</param></param> 
        /// <param name="Size">参数大小</param> 
        /// <param name="Value">参数值</param> 
        /// <returns>新的 parameter 对象</returns> 
        public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
        {
            return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
        }        /**/
        /// <summary> 
        /// 传入返回值参数 
        /// </summary> 
        /// <param name="ParamName">存储过程名称</param> 
        /// <param name="DbType">参数类型</param> 
        /// <param name="Size">参数大小</param> 
        /// <returns>新的 parameter 对象</returns> 
        public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
        {
            return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
        }        /**/
        /// <summary> 
        /// 传入返回值参数 
        /// </summary> 
        /// <param name="ParamName">存储过程名称</param> 
        /// <param name="DbType">参数类型</param> 
        /// <param name="Size">参数大小</param> 
        /// <returns>新的 parameter 对象</returns> 
        public SqlParameter MakeReturnParam(string ParamName, SqlDbType DbType, int Size)
        {
            return MakeParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
        }        /**/
        /// <summary> 
        /// 生成存储过程参数 
        /// </summary> 
        /// <param name="ParamName">存储过程名称</param> 
        /// <param name="DbType">参数类型</param> 
        /// <param name="Size">参数大小</param> 
        /// <param name="Direction">参数方向</param> 
        /// <param name="Value">参数值</param> 
        /// <returns>新的 parameter 对象</returns> 
        public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
        {
            SqlParameter param;            if (Size > 0)
                param = new SqlParameter(ParamName, DbType, Size);
            else
                param = new SqlParameter(ParamName, DbType);            param.Direction = Direction;
            if (!(Direction == ParameterDirection.Output && Value == null))
                param.Value = Value;            return param;
        }
    }
}