public IList<Gname> GetReadFlei( int fid) { SqlParameter[] par = { new SqlParameter( " @fid ",fid), new SqlParameter( " @RecordCount ",SqlDbType.NVarChar, 30) }; par[ 1].Direction = ParameterDirection.Output; SqlDataReader DR = SQLHelp.ExecuteReader( " StroGetTest ", CommandType.StoredProcedure, par); IList<Gname> List = new List<Gname>(); while (DR.Read()) { Gname sw = new Gname(); sw.id = DR.GetInt32( 0); sw.gname = DR.GetString( 1); sw.gdir = DR.GetString( 2); sw.gfla = DR.GetString( 3); List.Add(sw); } DR.Close(); this.Label1.Text = par[ 1].Value.ToString(); return List; }
public static SqlDataReader ExecuteReader( string cmdText, CommandType cmdType, params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(Constr); try { ProCommand(cmd, conn, cmdText, cmdType,cmdParms); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //cmd.Parameters.Clear();//放到这里,返回参数会被清空。 return rdr; } catch { conn.Close(); throw; } }注意:cmd.Parameters.Clear()不能用,否用返回参数会被清空
CREATE PROCEDURE StroGetTest @fid int , @RecordCount NVarChar( 30) Output AS SELECT @RecordCount = count( 1) FROM gname WHERE fid = @fid; SELECT id,gname,gdir,gfla FROM Gname WHERE fid = @fid; GO