// SQLDataAccess. ExecuteQueryProc public DataSet ExecuteQueryProc(ProcedureParams oParams) { DataSet oDataSet = new DataSet(); SqlConnection oConn = GetConnection(true); if (oConn != null) { SqlCommand oCommand = new SqlCommand(oParams.sProcedureName, oConn); oCommand.CommandType = CommandType.StoredProcedure; foreach (Param oColParam in oParams.Params) { SqlParameter oParam = new SqlParameter(); oParam.DbType = DbType.Int32; oParam.Direction = ParameterDirection.Input; oParam.ParameterName = oColParam.sParameterName; oParam.SourceColumn = oColParam.sSrcColName; oParam.SqlDbType = SqlDbType.Int; oParam.Value = oColParam.Value; oCommand.Parameters.Add(oParam); oParam = null; } SqlDataAdapter oAdapter = new SqlDataAdapter(); oAdapter.SelectCommand = oCommand; oAdapter.Fill(oDataSet); return oDataSet; } return oDataSet;Ok, here's the problem. If I code each param individually using native ADO code, I get a data set back. If I use this code above, I get no records. I have walked it through a few times and I cannot see what the problem is. The data being set on the oParam object all appear to be ok.