ASP.NET C# を使用して Windows サービスを構築しています。MySqlCommand オブジェクトを使用して MySQl データベースから呼び出しを行おうとしています。データベースの tbl_patient というテーブルからデータを取得しようとしています。次のクエリを MySQlCommand オブジェクトに渡すと:
SELECT ID, ID_Institution, AdresseDomiciliaire, PersonneDeContact, Telephone, nom, prenom, lastSyncDate, DateModified FROM tbl_patient
つまり、クエリをそのクエリに変更すると、データを取得できます。
SELECT ID, ID_Institution, AdresseDomiciliaire, PersonneDeContact, Telephone, nom, prenom, lastSyncDate, DateModified FROM tbl_patient WHERE lastSyncDate < DateModified
エラーが発生し続けます:入力文字列が正しい形式ではありません。エラーは、データリーダーがクエリによって返された行を読み取ろうとしているときに、tbl_patient のこれらの日時フィールドが原因であると思います。この問題について誰か助けてもらえますか?
これは、私の状況をよりよく理解するために tbl_patient からレコードを取得しようとするメソッドの完全なコード スニペットです。例外をスローするクエリを追加します。
public static List<Tbl_Patient> getPatients()
{
List<Tbl_Patient> patients = new List<Tbl_Patient>();
string query = "SELECT ID, ID_Institution, AdresseDomiciliaire, PersonneDeContact, Telephone, nom, prenom, lastSyncDate, DateModified FROM tbl_patient WHERE lastSyncDate < DateModified"; // This query passed as cmdText in my MySqlCommand object throws exception
MySqlConnection connection = DBUtils.GetDBConnection();
connection.Open();
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
try
{
while (dataReader.Read())
{
Tbl_Patient patient = new Tbl_Patient();
patient.Id = (long)(dataReader["Id"]);
patient.ID_Institution = Convert.ToInt64(dataReader["ID_Institution"]);
patient.AdresseDomiciliaire = dataReader["AdresseDomiciliaire"].ToString();
patient.PersonneDeContact = dataReader["PersonneDeContact"].ToString();
patient.Telephone = dataReader["Telephone"].ToString();
patients.Add(patient);
}
}
catch(Exception e)
{
Console.WriteLine(e.Message); // Here is where the exception comes from
}
dataReader.Close();
connection.Close();
return patients;
}