string address = "";
        string auID = "";
        DataTable table = null;
        try
        {
            SqlConnection conn = AdoDB.BuildConnection();
            conn.Open();
            SqlCommand cmd = new SqlCommand("ERPCRM_osUserAu_NewRoles", conn);
            cmd.Parameters.Add("@userid", userid);
            cmd.Parameters.Add("@auid", SqlDbType.VarChar, 100);            cmd.Parameters["@auid"].Direction = ParameterDirection.Output;
           
            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            ad.Fill(ds, "table1"); 这里报异常,是不是写法不对???          
        auID = Convert.ToString(cmd.Parameters["@auid"].Value);           table = ds.Tables[0];
            conn.Close();
        }
        catch (Exception ex)
        {
            string mess = ex.ToString();
            throw;
        }我存储过程是返回一个记录集和一个输出参数 测试过肯定没问题。。请高手指点!!

解决方案 »

  1.   

    报什么异常。错误信息贴出来。
    ad.Fill(ds, "table1"); 对的。或者你不指定名称,直接换成ad.Fill(ds);看看是否报错。估计是你前面的代码写的有问题。导致无法Fill
    你是要执行存储过程吗?
    那么添加一句代码:
    SqlCommand cmd = new SqlCommand("ERPCRM_osUserAu_NewRoles", conn); 
    cmd.CommandType=CommandType.StoredProcedure ;
      

  2.   

    参数赋值
    报什么错误
    (SqlConnection conn = new SqlConnection(""))
    {
    conn.Open(); 
    SqlCommand MyCommand = new SqlCommand("ERPCRM_osUserAu_NewRoles", conn); 
    MyCommand.CommandType = CommandType.StoredProcedure; 
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)); 
    MyCommand.Parameters["@a"].Value = 20; 
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)); 
    MyCommand.Parameters["@b"].Direction = ParameterDirection.Output; 
    MyCommand.ExecuteNonQuery(); 
    Response.Write(MyCommand.Parameters["@b"].Value.ToString()); 
    }
      

  3.   

    问题找到了。。cmd.CommandType=CommandType.StoredProcedure ;马上结贴!!!!!