以前都是直接在cs里用到sql语句的,现在要实现如下存储过程功能:一个存储过程,需要传入两个参数,分别为:表名,字段名,
                 输出一个count(传入字段名) from (传入表名)现在这个存储过程要怎么写,在CS文件里要如何调用?本人首次接触存储过程,请越详细越好,请高手帮忙

解决方案 »

  1.   

    create proc test
      @filedname varchar(50),
      @tablename varchar(50)
    as
      declare @SQL varchar(8000)
      set @SQL='select count('+@filedname+') from '+@tablename
      exec(@SQL)
      

  2.   

    兄弟,输出呢? 
    cs文件里怎么取得这个统计值呀 
    不用output嘛?
      

  3.   

    create proc test
      @filedname varchar(50),
      @tablename varchar(50)
    as
      select count(@filedname) from @tablename这样比较简单,呵呵
      

  4.   

    应该需要OUTPUT返回吧把filedname设置成output返回值
      

  5.   

    看来我已经来晚了,不过一般要加begin end 和go
      

  6.   

    这样通不过create proc test
      @filedname varchar(50),
      @tablename varchar(50)
    as
      select count(@filedname) from @tablename这样通过
    create proc test
      @filedname varchar(50),
      @tablename varchar(50)
    as
      declare @SQL varchar(8000)
      set @SQL='select count('+@filedname+') from '+@tablename
      exec(@SQL)但是确定不需要output参数嘛?
      

  7.   

    CREATE PROCEDURE [GetCount] 
    @tablename varchar(50),
    @count int OUTPUT
    AS
    SELECT @count=ISNULL(rows,0) FROM sysindexes WHERE  id = object_id(@tablename) AND indid IN (0,1)
    GO
    用这个,速度在毫秒内,缺点是不是实时更新,取值不是最新
      

  8.   

    SqlCommand cmd = new SqlCommand("test", new SqlConnection(ConnectionString));
    cmd.CommandType = CommandType.StoredProcedure;
    object fieldCount = cmd.ExecuteScalar();
      

  9.   

    按条件的话用wumylove1234(毁于随) 说的就可以拉
      

  10.   

    create proc test
      @filedname varchar(50),
      @tablename varchar(50)
    as
      declare @SQL varchar(8000)
      set @SQL='select count('+@filedname+') from '+@tablename
      exec(@SQL)这个没有output的,可以这样调用嘛
    ptrParam.Direction =ParameterDirection.Output; 
      

  11.   

    感谢 rocklabzhang() 在QQ群里的热心解答,现在结分