Obtenir SqlDataAdapter et SqlCommand confus

J'ai cette méthode d'appel:

public ssortingng RunReportSteps(int _reportKey) { DataTable fStepsTable; fStepsTable = GetStepsTable("xxx.console.pr_xxx"); return (ssortingng)fStepsTable.Rows[1][3]; } 

Il appelle cette méthode privée:

 private DataTable GetStepsTable(ssortingng procName) { var connectionSsortingng = ConfigurationManager.ConnectionSsortingngs["xxx"].ConnectionSsortingng; using(var conn = new SqlConnection(connectionSsortingng)) using(var adapt = new SqlDataAdapter()) using(var cmd = new SqlCommand(procName, conn)) { conn.Open(); SqlParameter p = new SqlParameter("@ReportKey", this.ReportKey); p.Direction = ParameterDirection.Input; cmd.Parameters.Add(p); adapt.SelectCommand = cmd; DataSet mySet = new DataSet(); adapt.Fill(mySet); //<<<<<<<<<<<<<<<<<<<errors here return mySet.Tables[0]; } } 

Pourquoi ai-je le message d'erreur suivant?

La procédure ou la fonction 'pr_xxx' attend le paramètre '@ReportKey', qui n'a pas été fourni.

Je suppose que procName est le nom de la procédure stockée. Vous n'avez pas défini le CommandType de SqlCommand à StoredProcedure :

 using(var conn = new SqlConnection(connectionSsortingng)) using(var cmd = new SqlCommand(procName, conn)) using(var adapt = new SqlDataAdapter(cmd)) { cmd.CommandType = CommandType.StoredProcedure; // <<< this was missing SqlParameter p = new SqlParameter("@ReportKey", this.ReportKey); p.Direction = ParameterDirection.Input; cmd.Parameters.Add(p); DataTable table = new DataTable(); adapt.Fill(table); return table; }