在 C/S 中 在程序中调用一个 存储过程   程序却报  找不到存储过程的异常 
下面是代码
1.这是通过界面传的3个参数  及调用的一个类
public bool proc(string id,string text,string name)
        {
            try
            {
                proc= "proc_t1t2 '2','3','13'";
                objdbc.RunProc(proc);     
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }2.这是也执行命令的另一个类 及链接 操作类
 public bool RunProc(string proc)
        {
            if (!ConnOpen())
            {
                throw (new ApplicationException("没有建立数据库连接"));
            }
            objoleComm.CommandType = System.Data.CommandType.StoredProcedure;
            objoleComm.CommandText = proc;
            try
            {
                objoleComm.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {throw ex;}
            return true;
        }问题 在第一段代码中 如果  proc= "proc_t1t2";  则代码正确执行存储过程 没有抛任何的异常   但是  proc= "proc_t1t2 '2','3','13'";  则程序报找不到 proc_t1t2 '2','3','13' 这个存储过程 请问各位帮忙看看 是什么问题,为什么 在没有参数的情况下执行存储过程 没有错 而在有输入参数的情况下会出错咯  谢谢各位了   

解决方案 »

  1.   

    public bool proc(string id,string text,string name)
            {
                try
                {
                    proc= "proc_t1t2"+id+text+name;
                    objdbc.RunProc(proc);   
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return true;
            } 
      

  2.   

       public void select(string id, string text, string name)
        {
            string sql = "sql语句";
            SqlConnection scon = new SqlConnection("连接字符串");
            scon.Open();
            SqlCommand scom = new SqlCommand();
            scom.Connection = scon;
            scom.CommandType = CommandType.StoredProcedure;
            scom.CommandText = "存储过程名";
            //和你数据库里面的参数相对应;
            SqlParameter[] paras = new SqlParameter[] { 
                new  SqlParameter("@id",SqlDbType.Int,4),
                new SqlParameter("@text",SqlDbType.VarChar,20),
                new SqlParameter("@name",SqlDbType.VarChar,20)
            };
            paras[0].Value = id;
            paras[1].Value = text;
            paras[2].Value = name;
            scom.Parameters.Add(paras[0]);
            scom.Parameters.Add(paras[1]);
            scom.Parameters.Add(paras[2]);
            //执行就ok
            scom.ExecuteNonQuery();
        }
      

  3.   

    在代码2中实现代码从用的原则  并实现3层的功能   也就是说  Runproc 在程序中 所以的存储过程都可以调用  谢谢