当前位置: 代码迷 >> C# >> C# 如何执行不带参数的存储过程
  详细解决方案

C# 如何执行不带参数的存储过程

热度:29   发布时间:2016-05-05 03:49:22.0
C# 怎么执行不带参数的存储过程?

   public DataSet GetListWithProcedure(string strProcedureName, SqlParameter[] paras)
        {
            DataSet ds = new DataSet();
            try
            {
                using (SqlConnection conn = new SqlConnection(stsqlcon))
                {
                    using (SqlCommand command = new SqlCommand(strProcedureName, conn))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        for (int i = 0; i < paras.Length; i++)
                        {
                            command.Parameters.Add(paras[i]);
                        }
                        SqlDataAdapter da = new SqlDataAdapter(command);
                        da.Fill(ds, "ds");
                        return ds;
                    }
                }
            }
            catch
            {
                throw;
            }
        }


这是dbhelp 里面的一个类

我在前台调用的时候这样为什么不行呢?  
DataTable dt = DBHelpSQL.GetListWithProcedure("sp_who_lock",SqlParameter[]=null);
            this.DgvPidData.DataSource = dt;

提示错误 请提供需要提供的值?
------解决思路----------------------
是的。每当提问时能够准确指明“是哪一行抛出异常”,对于你自己来说,是当务之急。

把问题集中到某一行上,首先你自己的编程态度就发生了巨大变化,不用仍出一大堆别人给你的无关代码再让第三人给你改了。
------解决思路----------------------
引用:
Quote: 引用:

DataTable dt = DBHelpSQL.GetListWithProcedure("sp_who_lock",SqlParameter[]=null);
this.DgvPidData.DataSource = dt;
既然你的存储过程没有参数,那就直接用null吧!!
改成
DataTable dt = DBHelpSQL.GetListWithProcedure("sp_who_lock",null);
this.DgvPidData.DataSource = dt;


不行提示 错误 3 非静态的字段、方法或属性“PublicHelpSql.DBHelpSQL.GetListWithProcedure(string, System.Data.SqlClient.SqlParameter[])”要求对象引用

运行都运行不了吗??还是运行后在某段代码出错提示的??
你断点看看在哪句提示的!!
你这样
System.Data.SqlClient.SqlParameter[] sqlParas=null;
DataTable dt = DBHelpSQL.GetListWithProcedure("sp_who_lock",sqlParas);
this.DgvPidData.DataSource = dt;
这样试试,应该没有问题的了
  相关解决方案