Diskuze: District() u String[]
Člen
plelovsky:20.9.2017 9:25
public void LoadData()
{
if (Imports.Count() == 0)
{
cesta1 = System.IO.Path.Combine(cesta, @"Import.csv");
try
{
using (StreamReader sr = new StreamReader(cesta1, Encoding.Default))
{
HashSet<string> names = new HashSet<string>();
string s;
while ((s = sr.ReadLine()) != null)
{
string[] distribution = s.Split(';');
Import imp = new Import()
{
Customer = distribution[0],
Place_1 = distribution[1],
Place_2 = distribution[2],
Place_3 = distribution[3],
Place_4 = distribution[4],
Id = distribution[5],
Name = distribution[6],
SortingKey = distribution[7],
InvertoryNumber = distribution[8],
SerialNumber = distribution[9],
CordLength = distribution[10],
RevisionInterval = distribution[11],
TakenIntoEvidence = distribution[12],
Note = distribution[13],
Group = distribution[14],
ProtectionClass = distribution[15],
Category = distribution[16],
EquipmentClass = distribution[17],
ConnectionMethod = distribution[18],
UserValue_0_Name = distribution[19],
UserValue_0_Value = distribution[20],
UserValue_1_Name = distribution[21],
UserValue_1_Value = distribution[22],
UserValue_2_Name = distribution[23],
UserValue_2_Value = distribution[24],
UserValue_3_Name = distribution[25],
UserValue_3_Value = distribution[26],
UserValue_4_Name = distribution[27],
UserValue_4_Value = distribution[28],
UserValue_5_Name = distribution[29],
UserValue_5_Value = distribution[30],
UserValue_6_Name = distribution[31],
UserValue_6_Value = distribution[32],
UserValue_7_Name = distribution[33],
UserValue_7_Value = distribution[34],
UserValue_8_Name = distribution[35],
UserValue_8_Value = distribution[36],
UserValue_9_Name = distribution[37],
UserValue_9_Value = distribution[38],
MeasDate = distribution[39],
mPR = distribution[40],
mZK = distribution[41],
mRpe200mA = distribution[42],
mRpe10A = distribution[43],
mU10A = distribution[44],
mRiso500V = distribution[45],
mRiso250V = distribution[46],
mRiso100V = distribution[47],
mRisoIn_W = distribution[48],
mRisoW_PE = distribution[49],
mRisoIn_PE = distribution[50],
mIpe = distribution[51],
mIpeInv = distribution[52],
mIpeExt = distribution[53],
mIdif = distribution[54],
mIdifInv = distribution[55],
mIdifExt = distribution[56],
mId = distribution[57],
mIdDif = distribution[58],
mIsub = distribution[59],
mId_W = distribution[60],
mIdDif_W = distribution[61],
mP = distribution[62],
mPExt = distribution[63],
mS = distribution[64],
mSExt = distribution[65],
mcosPhi = distribution[66],
mI = distribution[67],
mU = distribution[68],
mIExt = distribution[69],
mTemp = distribution[70],
mRPM = distribution[71],
mUo_Vef = distribution[72],
mUo_Vpp = distribution[73],
mIm_S_n = distribution[74],
mIm_P_n = distribution[75],
mIm_P_p = distribution[76],
mIm_P_pz = distribution[77],
MeasInspectionNote = distribution[78],
MeasInspectionStatus = distribution[79],
MeasFunctTestNote = distribution[80],
MeasFunctTestStatus = distribution[81],
MeasMeasurementsNote = distribution[82],
MeasMeasurementsStatus = distribution[83],
MeasGlobalNote = distribution[84],
MeasGlobalStatus = distribution[85],
InspectorName = distribution[86],
InspectorSecondName = distribution[87],
InspectorLicense = distribution[88],
DeviceSerialNum = distribution[89],
DeviceType = distribution[90],
DeviceCalibrationNum = distribution[91],
DeviceCalibrationExpire = distribution[92],
SupplFirm = distribution[93],
SupplIC = distribution[94],
};
Imports.Add(imp);
if (names.Add(distribution[0]))
{
Customer cust = new Customer();
cust.NazevFirmy = distribution[0];
Customers.Add(cust);
}
Save();
ImportCount = Imports.Count();
}
}
}
catch (Exception ex)
{
WPFMessageBox.Show(ex.Message, "CHYBA!!!", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
else
WPFMessageBox.Show("Vyprázdněte data!", "CHYBA!!!", MessageBoxButton.OK, MessageBoxImage.Error);
}
Odpovídá na plelovsky
Maros2470:20.9.2017 10:00
Maros2470:20.9.2017 10:00
Super, funguje to. Mohl bys mi ještě poradit, jakým způsobem ověřit,
zda už databáze neobsahuje stejnou položku?
Bude to aplikace na evidenci zařízení a tak při obnově, nebo přidání
nových dat z CSV, by se zákazník mohl v databázi znásobit.
Díky
plelovsky:20.9.2017 10:10
Variant je několik
- před každým uložením zákazníka poslat dotaz do DB na jeho existenci a uložit jen pokud neexistuje
- před importem načíst všechny zákazníky z DB, pak přidat a uložit jen ty, co ještě neexistují
- na úrovni DB zařídit uložení jen pokud neexistuje
Varianta 1 je náročná na čas, varianta 2 na paměť.
Jelikož nakonec požaduješ něco jiného než jsi psal v zadání, tak ta moje
úprava nebude ideální.
Odpovídá na plelovsky
Maros2470:20.9.2017 13:38
Maros2470:20.9.2017 13:38
Zkusil jsem to takto a zdá se , že to funguje:
var custName = Customers.Where(o => o.NazevFirmy == distribution[0]).Count();
Imports.Add(imp);
if (custName == 0)
{
if (names.Add(distribution[0]))
{
Customer cust = new Customer();
cust.NazevFirmy = distribution[0];
Customers.Add(cust);
}
}
Save();
Otázka je, zda je to správně?
plelovsky:20.9.2017 14:04
Je to výše zmíněná varianta č. 1.
Pomocný HashSet names v mém návrhu hlídal jedinečnost jména zákazníka v
rámci jednoho importu. Když se pokaždé ptáš na existenci zákazníka v DB,
tak to není potřeba kontrolovat ještě jinak.
Imports.Add(imp);
var custName = Customers.Where(o => o.NazevFirmy == distribution[0]).Count();
if (custName == 0)
{
Customer cust = new Customer();
cust.NazevFirmy = distribution[0];
Customers.Add(cust);
}
Save();
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.
Zobrazeno 10 zpráv z 10.