存储过程:CREATE PROCEDURE  Hr_SearchByGsDqBm
(
@gs varchar(50),
@dq varchar(50),
@bm varchar(50),
@name varchar(50)

AS
select * from hr where gs like '%'+@gs+'%' and dq like '%'+@dq+'%' and bm like '%'+@bm+'%'  and name like '%'+@name+'%'
GO
DAL层: public static DataSet Hr_Search(string gs, string dq, string bm, string name)
        {
            SqlParameter[] parameters ={  new SqlParameter("@gs", SqlDbType.VarChar, 50),
                                          new SqlParameter("@dq", SqlDbType.VarChar, 50),
                                          new SqlParameter("@bm", SqlDbType.VarChar, 50),
                                          new SqlParameter("@name", SqlDbType.VarChar, 50)};
            parameters[0].Value = gs;
            parameters[1].Value = dq;
            parameters[2].Value = bm;
            parameters[3].Value = name;
            return DbHelperSQL.RunProcedure("Hr_SearchByGsDqBm", parameters, "hr");//这里报错!
        }
页面: public partial class Hr_dqbm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["AccountsAdminPage"] != null && Session["AccountsAdminPage"].ToString() != "")
                {
                    GridView1.PageIndex = Convert.ToInt32(Session["AccountsAdminPage"]);
                }
                BinData();
                ddlBind();
            }        }
        //绑定公司地区部门dropdownlist数据
        public void ddlBind()
        {
            //绑定公司dropdownlist
            List<HrModel> hrmodel = new List<HrModel>();
            hrmodel = HrSQL.Get_Gs();
            dl_gs.Items.Clear();
            dl_gs.Items.Add(new ListItem("请选择", ""));
            foreach (HrModel gs in hrmodel)
            {
                ListItem li = new ListItem();
                li.Value = gs.Gs;
                li.Text = gs.Gs;
                dl_gs.Items.Add(li);
            }
        }
        public void BinData()
        {
            string name = "";
            string  gs = "";
            string dq = "";
            string bm = "";
            name = this.txt_gjz.Text.Trim();//姓名
            DataSet ds = new DataSet();
            if (dl_gs.SelectedValue == "" && dl_dq.SelectedValue == "")
            {
                ds = HrBLL.Get_List();
            }
            else
            {
                if (dl_gs.SelectedValue != "")
                {
                    gs = dl_gs.SelectedValue;//公司
                }
                if (dl_dq.SelectedValue != "")
                {
                    dq = dl_dq.SelectedValue;//地区
                }
                if (dl_bm.SelectedValue != "")
                {
                    bm = dl_bm.SelectedValue;//地区
                }                ds = HrSQL.Hr_Search(dl_gs.SelectedValue, dl_dq.SelectedValue, dl_bm.SelectedValue, name);
            }
            int pageIndex = this.GridView1.PageIndex;
            Session["AccountsAdminPage"] = pageIndex;
            this.GridView1.DataSource = ds.Tables[0].DefaultView;            int record_Count = ds.Tables[0].Rows.Count;
            //控件显示行数
            int page_Size = GridView1.PageSize;
            //总页数
            int totalPages = int.Parse(Math.Ceiling((double)record_Count / page_Size).ToString());
            if (totalPages > 0)
            {
                if (pageIndex > totalPages - 1)
                    pageIndex = totalPages - 1;
            }
            else
            {
                pageIndex = 0;
            }
            //当前页
            this.GridView1.PageIndex = pageIndex;
            this.GridView1.DataBind();            int page_Count = GridView1.PageCount;
            int page_Current = pageIndex + 1;            //显示数量
            if (this.GridView1.PageIndex == 0)
            {
                btnFirst.Enabled = false;
                btnPrev.Enabled = false;
                if (this.GridView1.PageCount == 1)
                {
                    btnLast.Enabled = false;
                    btnNext.Enabled = false;
                }
            }
            else if (this.GridView1.PageIndex == this.GridView1.PageCount - 1)
            {
                btnLast.Enabled = false;
                btnNext.Enabled = false;
            }
            this.lblpagesum.Text = totalPages.ToString();
            this.lblpage.Text = (pageIndex + 1).ToString();
            this.lblrowscount.Text = record_Count.ToString();        }        public void NavigateToPage(object sender, CommandEventArgs e)
        {
            btnFirst.Enabled = true;
            btnPrev.Enabled = true;
            btnNext.Enabled = true;
            btnLast.Enabled = true;
            string pageinfo = e.CommandArgument.ToString();
            switch (pageinfo)
            {
                case "Prev":
                    if (this.GridView1.PageIndex > 0)
                    {
                        this.GridView1.PageIndex -= 1;                    }
                    break;
                case "Next":
                    if (this.GridView1.PageIndex < (this.GridView1.PageCount - 1))
                    {
                        this.GridView1.PageIndex += 1;                    }
                    break;
                case "First":
                    this.GridView1.PageIndex = 0;
                    break;
                case "Last":
                    this.GridView1.PageIndex = this.GridView1.PageCount - 1;
                    break;
            }
            if (this.GridView1.PageIndex == 0)
            {
                btnFirst.Enabled = false;
                btnPrev.Enabled = false;
                if (this.GridView1.PageCount == 1)
                {
                    btnLast.Enabled = false;
                    btnNext.Enabled = false;
                }
            }
            else if (this.GridView1.PageIndex == this.GridView1.PageCount - 1)
            {
                btnLast.Enabled = false;
                btnNext.Enabled = false;
            }
            BinData();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            BinData(); 
        }        protected void dl_gs_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dl_gs.SelectedValue != "0")
            {
                BinData();
            }
        }        protected void dl_dq_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dl_dq.SelectedValue != "0")
            {
                BinData();
            }
        }        protected void dl_bm_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dl_bm.SelectedValue != "0")
            {
                BinData();
            }
        }
    
    }
 return DbHelperSQL.RunProcedure("Hr_SearchByGsDqBm", parameters, "hr");//这里报错!取值都很正常的,就是不知为什么?

解决方案 »

  1.   

    没有错误信息 很难找到原因啊
    不过从表面上看  可能是 DbHelperSQL。RunProcedure 出了问题。
    或是 参数 不符合 规则 , 导致异常。
    打打断点 好好分析下吧。
      

  2.   

    对,楼上说的没错!
    就是这里 DbHelperSQL。RunProcedure “用户代码未处理 System.TypeInitializationException ”
    参数值都取到了的。