首先我给出两种方法的例子
public static List<FormGridEntity> GetAllCandidatesByProgram(string programShortName)
{
List<FormGridEntity> formGridEntities = null;
try
{
string cmd = SELECT + " WHERE " + CANDIDATE_PROGRAM_PA + " = " + CANDIDATE_PROGRAM;`enter code here`
//string cmd = SELECT
DAOParameters dps = new DAOParameters();
dps.AddParameter(CANDIDATE_PROGRAM_PA, programShortName);
List<SqlParameter> ps = Common.Methods.GetSQLParameters(dps);
SqlDataReader dataReader = QueryHandler.ExecuteSelectQuery(cmd, ps);
formGridEntities = Maps(dataReader);
dataReader.Close();
}
catch (Exception exception)
{
throw exception;
}
return formGridEntities;
}
另一种方法是
public static List<FormGridEntity> GetAllCandidatesByDates(DateTime initialDate,DateTime finalDate)
{
List<FormGridEntity> formGridEntities = null;
try
{
string cmd = SELECT + " WHERE " + FORM_SUBMISSION_DATE_PA + " BETWEEN " + initialDate + " AND " + finalDate;
//string cmd = SELECT
DAOParameters dps = new DAOParameters();
//What will I do here? since
**//dps.AddParameter(FORM_SUBMISSION_DATE_PA, initialDate);
//dps.AddParameter(FORM_SUBMISSION_DATE_PA, finalDate);**
List<SqlParameter> ps = Common.Methods.GetSQLParameters(dps);
SqlDataReader dataReader = QueryHandler.ExecuteSelectQuery(cmd, ps);
formGridEntities = Maps(dataReader);
dataReader.Close();
}
catch (Exception exception)
{
throw exception;
}
return formGridEntities;
}
我已经注释掉了
这里的大写术语都是类中上面的所有常量,例如
private const string FORM_PURCHASING_DATE = "DateOfPurchase";
private const string FORM_PURCHASING_DATE_PA = "@DateOfPurchase"
private const string FORM_SUBMISSION_DATE = "DateOfSubmission";
private const string FORM_SUBMISSION_DATE_PA = "@DateOfSubmission";
SELECT 也被正确定义。我完美地使用了这个层。但是现在发生了一种情况,我对该怎么做感到困惑。到目前为止,我一直在添加具有一对一关系的参数的值。但是,在我的第二种方法中,我使用 between 运算符,其中两个值引用一个参数,我将在这里写什么以使事情正常工作。我已经注释掉了我想要修改的特定区域。如果可能,请帮助我。下面是方法 GetSQLParameters public static List GetSQLParameters(DAOParameters dps) { List parameters = new List();
foreach (DictionaryEntry de in dps.hs)
{
SqlParameter p = new SqlParameter();
p.ParameterName = de.Key.ToString();
if (de.Value.ToString() == Convert.ToString(0))
{
p.Value = DBNull.Value;
}
else
{
p.Value = de.Value;
}
parameters.Add(p);
}
return parameters;