public int InsertEKGMeasurement(DTO_EKGMåling nyMåling) // Indlæs DTO her med de respektive data. Set vores værdier ind i en tabel i SQL server { SqlConnection conn; const String db = "F20ST2ITS2201908775"; conn = new SqlConnection("Data Source = st-i4dab.uni.au.dk;Initial Catalog = " + db + ";Persist Security Info = True;User ID = " + db + ";Password = "******""); conn.Open(); string insertStringParam = $"INSERT INTO SP_NyeEkger ([raa_data],[id_medarbejder],[borger_cprnr],[start_tidspunkt],[antal_maalepunkter],[samplerate_hz]) OUTPUT INSERTED.id_måling VALUES(@data, @employeeID, @socSecNb, @startTime, @antalMålePkt, @hz)"; using (SqlCommand cmd = new SqlCommand(insertStringParam, conn)) { //Tilføjer vores rådata til et BLOB objekt cmd.Parameters.AddWithValue("@data", nyMåling.RåData.SelectMany(value => BitConverter.GetBytes(value)).ToArray()); //Parametrene gør koden på linje 108 mere læsevenlig cmd.Parameters.AddWithValue("@employeeID", (nyMåling.MedarbejderID)); cmd.Parameters.AddWithValue("@socSecNb", (nyMåling.BorgerCPR)); cmd.Parameters.AddWithValue("@startTime", (nyMåling.StarttidspunktMåling)); cmd.Parameters.AddWithValue("@antalMålePkt", (nyMåling.AntalMålepunkter)); cmd.Parameters.AddWithValue("@hz", (nyMåling.SampleRateHz)); Retur = (int)cmd.ExecuteScalar(); } conn.Close(); return(Retur); }
/// <summary> /// Opretter DTO med parametre tilsvarende kolonner i databasens tabel SP_NyeEkger. /// Sender målingen videre til datalaget, hvorfra målingen endeligt indlæses i databasen. /// </summary> /// <param name="EmployeeIdAsString">Det indtastede medarbejderID som string. </param> /// <param name="SocSecNumberAsString">Det indtastede CPR-nummer som string. /// Er måling foretaget uden CPR, er default 111111-1111 </param> public void CreateEKGDTO(string EmployeeIdAsString, string SocSecNumberAsString) //Modtager disse to fra presentationlayer { StartEkgRecord(); //Starter målingen DTO_EKGMåling nyMåling = new DTO_EKGMåling(EmployeeIdAsString, SocSecNumberAsString, Convert.ToDateTime(starttidspunkt), ekgRawData, antalSamples, samplerate); localDataRef.InsertEKGMeasurement(nyMåling); //Sender målingen til databasen }
public void InsertEKGMeasurement(DTO_EKGMåling nyMåling) { output = new FileStream(@"Skrivebord\EKGMaaling.txt", FileMode.OpenOrCreate, FileAccess.Write); //writer = new StreamWriter(output); //writer.WriteLine(nyMåling.MedarbejderID + ";" + nyMåling.BorgerCPR + ";" + ) formatter = new BinaryFormatter(); formatter.Serialize(output, nyMåling); // writer.Close(); output.Close(); // Retur = CountID(); // return Retur; }
/// <summary> /// Indlæser DTO objekt i databasen. /// <example> /// <code> /// 1. conn.Open() /// 2. Opret lokalt stringparamater(INSERT INTO SP_NyeEkger ()) /// 3a Kør cmd. /// 3. Opret reference parametre fra DTO parametrene. /// 4. Eksempel: /// /// cmd.Parameters.AddWithValue("@data", /// nyMåling.RåData.SelectMany(value => /// BitConverter.GetBytes(value)).ToArray()); /// /// 5. conn.Close() /// </code> /// </example> /// </summary> /// <param name="nyMåling">Parameter modtaget fra LogicLayer.</param> public void InsertEKGMeasurement(DTO_EKGMåling nyMåling) // Indlæs DTO her med de respektive data. Set vores værdier ind i en tabel i SQL server { conn.Open(); string insertStringParam = $"INSERT INTO SP_NyeEkger ([raa_data],[id_medarbejder],[borger_cprnr],[start_tidspunkt],[antal_maalepunkter],[samplerate_hz]) OUTPUT INSERTED.id_måling VALUES(@data, @employeeID, @socSecNb, @startTime, @antalMålePkt, @hz)"; using (SqlCommand cmd = new SqlCommand(insertStringParam, conn)) { //Tilføjer vores rådata til et BLOB objekt cmd.Parameters.AddWithValue("@data", nyMåling.RåData.SelectMany(value => BitConverter.GetBytes(value)).ToArray()); cmd.Parameters.AddWithValue("@employeeID", (nyMåling.MedarbejderID)); cmd.Parameters.AddWithValue("@socSecNb", (nyMåling.BorgerCPR)); cmd.Parameters.AddWithValue("@startTime", (nyMåling.StarttidspunktMåling)); cmd.Parameters.AddWithValue("@antalMålePkt", (nyMåling.AntalMålepunkter)); cmd.Parameters.AddWithValue("@hz", (nyMåling.SampleRateHz)); } conn.Close(); }
/// <summary> /// Modtager DTO objekt som parameter, og udskriver hver enkelt parameter herfra til txt.fil. /// </summary> /// <param name="nyMåling">Parameter modtaget fra LogicLayer.</param> public void InsertEKGMeasurement(DTO_EKGMåling nyMåling) { if (File.Exists("EKGMaalingerTEST.txt") == false) { output = new FileStream("EKGMaalingerTEST.txt", FileMode.Create, FileAccess.Write); writer = new StreamWriter(output); foreach (double item in nyMåling.RåData) { writer.Write(item + ";"); } writer.WriteLine(nyMåling.MedarbejderID + ";" + nyMåling.BorgerCPR + ";" + nyMåling.StarttidspunktMåling + ";" + nyMåling.AntalMålepunkter + ";" + nyMåling.SampleRateHz); } output = new FileStream("EKGMaalingerTEST.txt", FileMode.Append, FileAccess.Write); writer = new StreamWriter(output); foreach (double item in nyMåling.RåData) //Vi indlæser først alle værdier fra array (de første 2500 værdier, adskilt med ;) { writer.Write(item + ";"); } //Indsætter derefter resterende værdier writer.WriteLine(nyMåling.MedarbejderID + ";" + nyMåling.BorgerCPR + ";" + nyMåling.StarttidspunktMåling + ";" + nyMåling.AntalMålepunkter + ";" + nyMåling.SampleRateHz); writer.Close(); }