0

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;

    }
4

1 に答える 1