У меня есть функция, возвращающая список IEnumerable класса EncounterList.C# Xamarin Android sqlite-pcl database.Query не возвращает результатов
Если бы я сделать это таким образом, что не работает, никаких результатов нет:
Вариант А:
public IEnumerable<EncounterList> GetEncounters4User4Date(long uid, string ApptDate)
{
string strSQL = "SELECT encounters.rotation as EncounterID, encounters.encounterdatetime as ApptTime, patients.surname || ', ' || patients.title || ' ' || patients.forename AS PatientName ";
strSQL += "FROM encounters INNER JOIN patients ON encounters.patientid = patients.rotation LEFT OUTER JOIN consultlinkage on encounters.rotation = consultlinkage.encounterid ";
strSQL += "WHERE encounters.userid=? AND consultlinkage.encounterid IS NULL AND strftime('%Y-%m-%d',encounters.encounterdatetime) = '?' ORDER BY encounters.encounterdatetime";
var results= database.Query<EncounterList>(strSQL, uid, ApptDate);
return results;
}
Если бы я сделать это таким образом, это делает работу.
Вариант B:
public IEnumerable<EncounterList> GetEncounters4User4Date(long uid, string ApptDate)
{
string strSQL = "SELECT encounters.rotation as EncounterID, encounters.encounterdatetime as ApptTime, patients.surname || ', ' || patients.title || ' ' || patients.forename AS PatientName ";
strSQL += "FROM encounters INNER JOIN patients ON encounters.patientid = patients.rotation LEFT OUTER JOIN consultlinkage on encounters.rotation = consultlinkage.encounterid ";
strSQL += string.Format("WHERE encounters.userid={0} AND consultlinkage.encounterid IS NULL AND strftime('%Y-%m-%d',encounters.encounterdatetime) = '{1}' ORDER BY encounters.encounterdatetime", uid, ApptDate);
var results= database.Query<EncounterList>(strSQL);
return results;
}
Может кто-нибудь объяснить мне, что это то, что я делаю неправильно в примере А? Я могу заставить его работать, если я использую string.format.
Вы ** двойные кавычки ** ошибочны в первом. –
Извинения. Исправлено это, чтобы включить отсутствующие котировки. –
Вначале ничего, возможно, вам нужно разбить условие 'where' и проверить оба запроса. –