public void GenerateXMLData() { // add clients nodes String connString = Properties.Settings.Default.FAFOS + " ; MultipleActiveResultSets=True"; SqlConnection con = new SqlConnection(connString); con.Open(); SqlCommand clients_command = new SqlCommand("SELECT client_id, account_name, address, province_id, city_id, postal_code FROM Client", con); SqlDataReader rd = clients_command.ExecuteReader(); String[] par; while (rd.Read()) { par = new String[3] { rd[0].ToString(), rd[1].ToString(), rd[2].ToString() + ", " + new Address().getProvince(rd[3].ToString()) + ", " + new Address().getCity(rd[4].ToString()) + ", " + rd[5].ToString() }; XML.addClient(par); // add client contracts SqlCommand client_contracts_command = new SqlCommand("SELECT client_contract_id, contract_nm, start_date, end_date, terms FROM Client_Contract WHERE client_id = " + rd[0], con); SqlDataReader rd1 = client_contracts_command.ExecuteReader(); String[] Contrcat_data; while (rd1.Read()) { Contrcat_data = new String[5] { rd1[0].ToString(), rd1[1].ToString(), rd1[2].ToString(), rd1[3].ToString(), rd1[4].ToString() }; XML.addContract(Contrcat_data); // add services addresses SqlCommand services_addresses_command = new SqlCommand("SELECT service_address_id, address, postal_code, on_site_contact, city_id, province_id, country_id FROM Service_Address WHERE client_contract_id = " + rd1[0], con); SqlDataReader rd2 = services_addresses_command.ExecuteReader(); String[] services_data; while (rd2.Read()) { services_data = new String[9] { rd2[0].ToString(), rd2[1].ToString(), rd2[2].ToString(), rd2[3].ToString(), new Address().getCity(rd2[4].ToString()), new Address().getProvince(rd2[5].ToString()), new Address().getCountry(rd2[6].ToString()), "", "" }; XML.addServiceAddress(services_data); // add floors SqlCommand floors_command = new SqlCommand("SELECT floor FROM Room WHERE service_addr_id = " + rd2[0], con); SqlDataReader rd3 = floors_command.ExecuteReader(); String[] floors_data; while (rd3.Read()) { floors_data = new String[1] { rd3[0].ToString() }; XML.addFloors(floors_data); // add rooms SqlCommand Rooms_command = new SqlCommand("SELECT room_id, room_num FROM Room WHERE floor = " + rd3[0].ToString() + " and service_addr_id = " + rd2[0], con); SqlDataReader rd4 = Rooms_command.ExecuteReader(); String[] rooms_data; while (rd4.Read()) { rooms_data = new String[2] { rd4[0].ToString(), rd4[1].ToString() }; XML.addRooms(rooms_data); // add Extinguishers SqlCommand Extinguishers_command = new SqlCommand("SELECT bar_code, location, size, type, model, serial FROM Extinguisher WHERE room_id = " + rd4[0].ToString(), con); SqlDataReader rd5 = Extinguishers_command.ExecuteReader(); String[] Extinguishers_data; while (rd5.Read()) { Extinguishers_data = new String[6] { rd5[0].ToString(), rd5[1].ToString(), rd5[2].ToString(), rd5[3].ToString(), rd5[4].ToString(), rd5[5].ToString() }; XML.addExtinguisher(Extinguishers_data); } rd5.Close(); // add FireHoseCabinet SqlCommand FireHoseCabinet_command = new SqlCommand("SELECT bar_code, location, manufacture_date FROM Hose WHERE room_id = " + rd4[0].ToString(), con); SqlDataReader rd6 = FireHoseCabinet_command.ExecuteReader(); String[] FireHoseCabinet_data; while (rd6.Read()) { FireHoseCabinet_data = new String[3] { rd6[0].ToString(), rd6[1].ToString(), rd6[2].ToString() }; XML.addFireHoseCabinet(FireHoseCabinet_data); } rd6.Close(); // add EmergencyLight SqlCommand EmergencyLight_command = new SqlCommand("SELECT bar_code, location, model, make, heads, power, voltage FROM Light WHERE room_id = " + rd4[0].ToString(), con); SqlDataReader rd7 = EmergencyLight_command.ExecuteReader(); String[] EmergencyLight_data; while (rd7.Read()) { EmergencyLight_data = new String[7] { rd7[0].ToString(), rd7[1].ToString(), rd7[2].ToString(), rd7[3].ToString(), rd7[4].ToString(), rd7[5].ToString(), rd7[6].ToString() }; XML.addEmergencyLight(EmergencyLight_data); } rd7.Close(); } rd4.Close(); } rd3.Close(); } rd2.Close(); } rd1.Close(); } rd.Close(); con.Close(); }