- iPhone topik
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
- Google Pixel topik
- Poco M3 - felújított állomás
- Térerő gondok, tapasztalatok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- One mobilszolgáltatások
Új hozzászólás Aktív témák
-
válasz
kingabo #2999 üzenetére
Ez is oké már erre is rájöttem, de akkor a kérdésem annyi, hogy: Ha nincs egymásban a két for akkor hogy íratod ki egymás mellé a listboxba a két változót?
Mert így max az érhető el hogy jönnek a neve, majd utána a pontszámok, nem pedig az, hogy:
[0. Név] [0. Pont]
[1. Név] [1. Pont]Az egymásba ágyazott for ciklus tűnt jó megoldásnak, de mégse' megy.
A szerkesztett részre: Oké, köszönöm a tanácsot, így fogok tenni.
Üdv. core2
-
kingabo
őstag
válasz
Neil Watts #2997 üzenetére
Nem teljesen
"Majd 0-tól indulva elmegyek kettesével elemszámig.
Ezt beleíratom a Nevek vektorba.Aztán egy másik for-ral - ami 1-től indul - elmegyek ugyancsak elemszámig, kettesével, ezzel rakom bele a pontokat a Pontok vektorba."
Ugyanis a második cilkus benne van az elsőben. Emiatt írodik ki a nevek rengetegszer a összes lehetséges pont-tal.szerk: most nézem a PasteBin-es kódod. Sokkal szebb lenne, ha az Ossztomb-öt a méret ismeretében (ezt nem tudom hol kapértéket) a beolvasás előtt, a Nevek és a Pontok tömböt a beolvasás után foglalnád le. Így nem pazaréloknál el rengeteg memóriát feleslegesen.
-
válasz
kingabo #2995 üzenetére
Oké.
Beolvasom a fájl tartalmát az Ossztombbe.
Majd 0-tól indulva elmegyek kettesével elemszámig.
Ezt beleíratom a Nevek vektorba.Aztán egy másik for-ral - ami 1-től indul - elmegyek ugyancsak elemszámig, kettesével, ezzel rakom bele a pontokat a Pontok vektorba.
Végül még ebben a for ciklusban kiíratom a Nevek-t és a Pontok[j]-t
Tehát értelmezésem szerint, a következő outputnak kéne lenni a két ciklus lefutása után kiíráskor
[0. Név] [0. Pont]
[1. Név] [1. Pont].
.
.
s így végig.Amúgy simán feltölti a vektorokat úgy ahogy -Zeratul- írta, csak épp nem írja ki őket.
Üdv. core2
-
bpx
őstag
válasz
Neil Watts #2994 üzenetére
semmi, +2 sor
for (int i = 0; i < elemszam; i+=2)
{
Nevek[i] = Ossztomb[i];
Pontok[i+1] = Ossztomb[i+1];
listBoxFeltolt.Items.Add(Ossztomb[i] + " , " + Ossztomb[i+1]);
}(csak hogy az eredeti elképzeléssel legyen egyenértékű)
-
kingabo
őstag
válasz
Neil Watts #2986 üzenetére
Te, le tudnád írni saját szavaiddal, hogy mit csinál a beidézett kódod? Minek ehhez 2 ciklus? A 4. sorban minek a '{' ?
Ha jól értem neked ennyi kéne:
for (int i = 0; i < elemszam; i+=2)
{
Nevek[i] = Ossztomb[i];
Pontok[i] = Ossztomb[i + 1];
}Ill érdekelne hogy hogyan debuggolsz. Ha lépésenként futtatod a progid észre kellene venned, hogy valami nagyon nem kerek...
ui: nem sértésből írtam amit, csak sokadjára jönnek elő olyanok, amik minimális debuggal meg lehet találni.
-
-
bpx
őstag
válasz
Neil Watts #2991 üzenetére
-
-
válasz
martonx #2989 üzenetére
Csak
Bővebben: Egy 300 bejegyzést tartalmazó textfilet nem fogok most kezdeni átszerkesztgetni a ha nem gond.
Arra viszont még mindíg nem sikerült rájönnöm hogy miért nem megy, hisz végig kéne mennie mindkét cikluson, maj a másodikban ki kéne írnia a két tömb tartalmát egymás mellé, nem de? Mármint valójában ezt kéne tennie, de mégsem teszi. Már nincs ötletem, hogy mit szúrhattam el
De valamit nagyon!
MOD: Amúgy azért, mert egymás mellé kell kerüliük az értékeknek index szerint.
Üdv. core2
-
martonx
veterán
válasz
Neil Watts #2988 üzenetére
miért két tömbben tárolod az egybe tartozó adatokat?
Másrészt a 20X-ozódás azért van, mert a a nevek tömb index-ét nem növeled. Az ott nem Nevek[j] akarna lenni Nevek helyett?
Ne mondd, hogy ezt a debugolás nem mutatta meg kapásból? -
bpx
őstag
válasz
Neil Watts #2986 üzenetére
pedig ez ránézésre működik, csak eléggé távol van az optimálistól
no meg az értelmét sem látom, mert egy ilyen bemenetből:A
.
B
..ilyen lesz a két tömb:
nevek: "A", null, "B", null
pontok: null, ".", null, ".."egyébként meg mi az hogy a for nem kap értéket? a ciklusváltozó kap értéket (i=0)
végtelen ciklus sincs, csak egymásba ágyazott, aminek semmi értelme nincs, és csak a feladat egyszerűsége miatt működik -
Sziasztok!
Van egy kis gondom.
Ez egy olyan program lenne, hogy van nekem egy textfájlom benne nevek és pontok egymás alatt. Na ezt kéne két tömbbe szétválogatni. Próbáltam már sok mindent. Ennél pl az első for nem kap értéket, ne töltődik a tömb.
ha
for (int i = 0; i < elemszam; i+=2)
{
Nevek[i] = Ossztomb[i];
{
for (int j = 1; j < elemszam; j += 2)
{
Pontok[j] = Ossztomb[j];
}
}
}formában írom, akkor meg meghülyül, végtele ciklus szerűséget kapok. Pedig fontos lenne, hogy az indexek megegyezzenek.
Biztos nagyon pici dolog amit nem veszek észre.
Köszi a segítséget! Megyek vissza debuggolni.Üdv. core2
-
ubid
senior tag
Megválaszolom magamnak : ) Aztán aki tudja, az helyeseljen, aki nem tudta az meg mostmár tudja : )
Bár jónak látszik, de lehet van szebb is : )
szóval egy foreach ciklusban végigmenve :
CloudBlockBlob block = new CloudBlockBlob(blobItem.Uri.ToString());
int filename = int.Parse(block.Name);
és ebbe benne van a filename : )
Helyes ez így ?
-
ubid
senior tag
Még egy kérdésem lenne nekem is : ) mert valahogy nem találok rá választ...
Azure blob storage-be töltök fel képet. idáig rendben is van.
List<string> blobs = new List<string>();
foreach (var blobItem in blobContanier.ListBlobs())
{
blobs.Add(blobItem.Uri.ToString());
}így. De ez visszaadja az összes elemet...
Én pedig neve szerint szeretnék egyet visszakapni.
Ezt hogy lehetne megvalósítani ?
köszi a segítséget
-
Lacces
őstag
válasz
martonx #2981 üzenetére
Aham, amúgy a tárolt eljárás megírását az SQL-ben végzed el és ASP.NET-ben meghívod, vagy ASP.NET-ben írod meg és ott is kerül meghívásra (természetesen EF segítséggel).
Én láttam minden fajtát, és nekem nem tetszett, hogy a programkódban egy String-ben megírják a tárolteljárást. Jobb szeretem csak meghívni
Devportálon is martonx néven vagy jelen?
-
martonx
veterán
Bármelyiket használhatod.
Egyszerűsége, illetve MVC-ben használhatósága miatt én a LINQtoEntites-t favorizálom.
Persze ha fontos a teljesítmény, akkor mindenre tárolt eljárást írok, és az EF-et, csak ezek meghívogatására, illetve a válaszok objektumosítására használom.
Napi 1000 felhasználó semmit nem jelent. A nagy kérdés mindig az, hogy ebből mennyi az egyidejű, konkurens felhasználó. -
martonx
veterán
oké, csak sokan azt hiszik, hogy a LINQ az valami csoda. Félreértés ne essék, szeretem a LINQ-et, csak azt akartam jelezni, hogy pl. futásidőben nem nyerünk semmit, ha LINQ-et használunk.
Máshol pl. kódolás hatékonysága, kód olvashatósága stb... persze sok előnye van a LINQ-nek.
Mégis erre a feladatra a regexp szvsz hatékonyabb, mint a LINQ. -
Lacces
őstag
Sziasztok!
Ez lehet lüke kérdés lesz, de muszáj feltennem.
ASP.NET-ben az adatbázishoz kapcsolódáshoz / műveletek végrehajtása használhatom-e az ADO.NET-et? Vagy inkább a LINQ vagy EntityFramework a nyerő?
Most megkellett álnom az ADO.NET tanulásban, másra kell fordítanom az időt. De nagyon tetszett nekem. Bár azon belül is 1 fejezet volt az Object Data Source témakör, de megfogott (igaz desktop alkalmazás)
Lesz egy weboldal ahol statisztikához, grafikonhoz kérek le adatb-ből állandóan adatokat. Ez elég interaktív lenne.
A másiknál meg egy félig közösségi oldal jellegű. De ha befutna, akkor napi 1000 felhasználó kiszolgálásától ne rémüljön meg.ubid Ez jó kérdés, tetszik +1 neki!
-
ubid
senior tag
MVC3-ban lehet olyat, hogy egy return View()-ban több dolgot adok vissza ?
Tehát mondjuk egy adatbázisból szedett listát, meg egy azure blob storage-ből szedett képeket ?
Vagy akkor mindenféle képpen partial view-t kell használni ?:S
-
Jester01
veterán
válasz
WonderCSabo #2970 üzenetére
if (text.TrimStart(new char[] { 'n', 'f', 'e' }).Length > 0) ...
-
drkbl
őstag
válasz
WonderCSabo #2970 üzenetére
Szerintem nincs, szvsz. a LINQ itt igen nagy overkill.
LINQ: ha esetleg nem ismered: [link]A
(from char s in "bad input"
where !(from char c in "okchars" select c).Contains(s)
select s).Count()kifejezés a nem megfelelő karakterek számát adja vissza (9 karakterből csak az "a" szerepel a megfelelő karakterek között, az eredmény 8).
-
martonx
veterán
válasz
WonderCSabo #2970 üzenetére
A regex valóban tökéletes erre. LINQ is ugyanilyen jó, viszont szólok, hogy a LINQ ebben az esetben csak elfedné a for ciklust, azaz a háttérben egy for -os keresést csinál, csak a kódot olvasva szebb, és tömörebb.
Én a regex-re szavazok. -
WonderCSabo
félisten
válasz
martonx #2969 üzenetére
ööö, ez egy baromi egyszerű probléma, ennyire bonyolultan írtam le ?
A stringben csak a kövi 3 karakter lehet: n, f, e . Ha bmi egyéb más akár csak egyszer is előfordul benne, akkor már nem valid.
Egyébként közben rájöttem, hogy regexel baromi egyszerűen megoldható. Esetleg van még egyszerűbb megoldás?
-
martonx
veterán
válasz
WonderCSabo #2966 üzenetére
nem érvényesnek tartott karaktereket (az érvényesek ismeretében) - ezt kicsit részleteznéd?
Ha van benne A, akkor de csakis akkor ne legyen benne B? Tehát pl. BCDVFG érvényes, de ABCDVF nem érvényes? -
drkbl
őstag
válasz
WonderCSabo #2966 üzenetére
Nem LINQ, de szerintem okos: [link]
Az általam kiemelt részlet:
if (e.Label.IndexOfAny(new char[]{'@', '.', ',', '!'}) == -1)
{
// Stop editing without canceling the label change.
e.Node.EndEdit(false);
}
else
{
/* Cancel the label edit action, inform the user, and
place the node in edit mode again. */
e.CancelEdit = true;
MessageBox.Show("Invalid tree node label.\n" +
"The invalid characters are: '@','.', ',', '!'",
"Node Label Edit");
e.Node.BeginEdit();
} -
WonderCSabo
félisten
Hello!
Hogyan tudnám okosan ellenőrizni, hogy a stringem tartalmaz-e általam nem érvényesnek tartott karaktereket (az érvényesek ismeretében). Az okos alatt úgy értem, hogy nem for -al és if - el, hanem mondjuk LINQ-val.
Köszi!
-
martonx
veterán
A hibaüzenet alapján, te egy listát adtál át modellként, de egy darab entitást kellene átadnod.
Egy fórumban nem lehet megfelelően komplex problémákra rendes választ adni.
Ameddig az a feladat, hogy pistike ki akarja választani 1-10-ig a páros számokat, addig oké a segítség. Amikor már ennél komplettebb, akkor elég nehéz a segítség. És nem azért mert nincs meg a tudásunk. -
ubid
senior tag
Egyébként Render Partial-lal elszáll ezzel a hibaüzenettel : ( első változatát tudom csak használni, mert IEnumerable-ben vagyok és nem elérhető így a Model-em )
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[BorsodBiz.Models.Tourism]', but this dictionary requires a model item of type 'BorsodBiz.Models.Tourism'.
-
Lacces
őstag
Évekkel ezelőtt a RenderAction függvénnyel volt nekem is valami baj
Ezt nézd át, hogy hogyan történik egy partial view, igaz angol, de kód szinten látod, egyszerű
Illetve mivel látok itt ID átvitelt is az előző hszeknél, akkor talán még ez is segíthet:
RenderAction id-val -
ubid
senior tag
A partial view-nak hogyan lehet megoldani, hogy ne renderelje oda a master page-et ?
Valamiért odarakja mindig, de nem látom a kódrészletet, ami odarakja...
Ezzel hívom a partial view-t
@{Html.RenderAction("Details", "Tourism");}
A partial view-t meg úgy készítettem ahogy kell
bepipáltam, hogy te egy partial view vagy és kész.
-
martonx
veterán
Rosszul hívod meg a Details függvényt. Bár a sok - sok felesleges programrész, meg képernyő mentés közül csak pont ezt a lényeget nem láttatod.
Így mikor a motor parse-olja a kapott POST-ot, mivel abban benne van az Id-is, így azt a mezőt is kitölti az entitásban.
Ezt könnyen nyomon tudod követni böngészpben F12 Network fül, bármilyen böngészőben (na jó IE8 és ennél régebbieknél nincs Network fül). Nézd meg, hogy a böngésző miket post-ol a szervernek.
Úgyhogy valahol a view-knál, partialview-knál vizsgálódnék, mert ott lesz a hiba. -
ubid
senior tag
Sziasztok!
Ismét egy kis segítséget szeretnék kérni = ) Kicsit bonyolultabb elmagyarázni, de remélem megértitek mi a problémám, és tudtok segíteni is !
Előre is köszönöm !Tehát :
Egy asp.net mvc3 webalkalmazás darabját készítem jelenleg. A feladat : Események létrehozása, majd miután létrehoztuk az eseményeket visszadob egy lapra, ahol az események listája látszik. minden eseményhez van egy link, ami tulajdonképpen a details- lapja, viszont ott alatta lehet kommentelni az adott eseményt. ( természetesen mindent adatbázisba mentünk le az eseményeket az események táblába, a kommenteket a komment táblába, viszont kapcsolat nem lehet közöttük, mert az alkalmazás során máshova is kell majd kommentelni )
Ezt , hogy oda varázsolja a komment felületet egy a details view-ba varázsolt RenderAction-el oldottam meg.
így : @{Html.RenderAction("CommentCreate", "Comment");}Mivel a details lapon van a kommentelő felület ( ide listázza ki, és alatta van egy form is, ahol beírható a komment és küldhető ) ezért nyilván ide is postol vissza, ezért ennek a controllerébe ( jelen esetben ez az event controller ) írtam a details-hoz egy HTTP-s actionresult-ot, aminél kezdődik a gond.
Az a problémám, hogy valamiért az event ID-jét egyből belenyomja nekem kérés nélkül a komment ID-jába, amitől nyilván több kommentet nem is vihetek fel, mert ütközés van.
( a kommentnek van egy TARGETID-ja ami nem egyedi, én ebbe szeretném, hogy megjelenjen az adott esemény ID-ja abból a célból, hogy minden esményhez csak a hozzá tartozó kommenteket listázza ki )A kód így néz ki : public ViewResult Details(int id,Comment newComment)
ebben ugye azért írtam be az ID-t mert szeretném , hogy a TARGETID-ba majd ez bekerüljön ( ez így rendben is van szerintem, mert az URL-be már úgyis benne van az esmeényünk ID-ja , ezáltal bele is tudom rakni a TARGETID-ba.
Viszont a sima ID ( aminek csak akkor kéne értéket kapnia amikor mentődik az adatbázisba, mivel ott számolódik ki (PK) )a kód további része így néz ki :
{
newComment.Added = DateTime.Now;
MembershipUser currentUser = Membership.GetUser();
Guid userId = new Guid(currentUser.ProviderUserKey.ToString());
newComment.UserID = userId;
newComment.TargetID = id;
db.Comments.AddObject(newComment);
db.SaveChanges();
return View();
}Mutatok egy képet is, hogy lássátok miről beszélek :
Tehát látható, hogy még a db save-ig el se jutott, de már ott felvette azt az ID-t ami nem is az övé lénne.
A partial-view-nak pedig így néz ki az érdemi része :
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.TargetID)
</td>
<td>
@Html.DisplayFor(modelItem => item.TargetType)
</td>
<td>
@Html.DisplayFor(modelItem => item.Text)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Added)
</td>
<td>
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
@using (Html.BeginForm())
{
<textarea rows="5" cols="30" id="text" name="text"></textarea>
<input type="submit" value="Küldés" />
}Aki tud segítsen , hogy miért lehet ez.
Előre is köszönöm!
-
-
ArchElf
addikt
válasz
Neil Watts #2954 üzenetére
Be van csatolva a metódus (btnLetoltes_Click) a Click eseményre?
Debugban belelép - ha nem lép bele, akkor valamit elcsesztél az esemény létrehozásásnál (btw itt nem elég létrehozni a "megfelelő" nevű metódust, mint régen a VB-ben, itt össze kell linkelni az eseményeket és az eljárásokat - többek között ezt is az InitializeComponent() eljárásban teszi meg a program, ha jól kattintgattad össze).AE
-
Sziasztok!
Ezt inkább kiraktam pastebinre a hossza miatt: klikk
Szóval a történet a következő... MSDN-t, és C#-os jegyzeteket böngészve, meg logika alapján megpróbáltam egy kis letöltő cuccot összerakni.
Átnéztem, a Letöltés gombar nem csinál semmit, debug módban sem, teljes halál. Már csak arra tudok gondolni, hogy meg kéne cserélnem a szekvencuális végrehajtás miatt a button clickjét a metódussal/osztállyal. Be kéne tolnom az elejére.
Már tényleg nem tudom mi van. Mondom, Debug sem adott semmit.
Üdv. core2
-
Jester01
veterán
-
Lacces
őstag
Sziasztok!
Abstract Factory tervezési minta esetén az Abstract Factory(Gyár) és az Abstract Product(termék) helyet Interface-t használok, az nagy bűnnek számít?
-
ArchElf
addikt
válasz
Jhonny06 #2947 üzenetére
1) Ne felületen add hozzá az eseménykezelőt, hanem kódból (illetve felületen is hozzá tudod adni a properties ablakban az Event fülön a megflelő sorban ki tudod választani a megfelelő karakterisztikával rendelkező metódusok közül - vagy kézzel beírva új FV nevet a VS létrehozza a megfelelő nevű fv-t).
2) Ne konkét típusra (Button, PictureBox) cast-old a sendert, hanem valami közös ősre: Control. Valószínűleg ennek megvan az a tulajdonsága, amit változtatni szeretnél (Text, Background, Image), illetve az is amit lekérdezel (Name, Tag)...
private void Form1_Load(object sender, EventArgs e)
{
button1.Click +=new EventHandler(OnClickHandler);
pictureBox1.Click +=new EventHandler(OnClickHandler);
}
public void OnClickHandler(object sender, EventArgs e)
{
Control s = sender as Control;
if (s == null) throw new ApplicationException();
//kód
s.BackgroundImage = s.Tag as Image;
}AE
-
Jhonny06
veterán
Sziasztok!
WPF-be hogy lehet azt megoldani, hogy _egy_ függvényt írok mondjuk 9 imageBox-nak és mindegyikre ha rákattintok, akkor ugyanazt a képet hozza elő (mindegyikbe külön-külön)? Gomboknál ugye meg lehet a ((Button)sender)-el csinálni, de itt nem. Nincs valami általános megoldás erre (ami nem csak imageBox-al működik, hanem bármilyen control-al)? Mert ha megírom az elsőt és azt alkalmazom mindegyikre, akkor mivel az első nevével jött létre, mindegyik arra fogja alkalmazni. Naponta belefutok ebbe és kurva idegesítő.
-
amargo
addikt
Ha offline a program életciklusa során soha nem változó adatokról van szó, akkor minek vesződsz azzal, hogy runtime töltögeted le?
Az adatok memóriában tartását érdemes meggondolni, nem szerencsés erre támaszkodni. Én maradnék annál, hogy valamilyen adatbázisba tárold le. Akár fájlba - nyilván ez nem feltétlen jó megközelítés - vagy valamilyen előre feltöltött adatbázis fájlt csatolsz fel, majd onnan szeded ki az adatokat.Szerk:
"SQL-CE adatbázist viseli el a WP7 tudtommal, ezért gondoltam azt, hogy abban egyszerűen letárolom az adatokat, majd a felületen megjelenítem, és ámen."
Akkor miért nem ezt csináltad?
A kérdést nem gúnyolódásól teszem fel, hanem tanítási szándékkal. Annyi, hogy nem runtime kell az adatokat feltölteni, hanem már egy olyan sdf-et - akár - adsz hozzá, ami feltöltött. Olvashatsz itt is róla. -
ubid
senior tag
Igen, tervezésnél vagyok : ) Csak alapokat próbáltam lekódolni.
De van abban valami amit mondasz
Rutinról még azért nem beszélhetünk. írtam pár dolgot már, de ez nem rutin
Azért próbálok gyakorolgatni.Az offline-t úgy értettem, hogy internet egyáltalán nem kell hozzá.
SQL-CE adatbázist viseli el a WP7 tudtommal, ezért gondoltam azt, hogy abban egyszerűen letárolom az adatokat, majd a felületen megjelenítem, és ámen.
-
ubid
senior tag
persze, szokott változni, de olyankor belenyúlok a kódba úgyis, dobok fel újabb adatokat, de kódból, és nem a felületről.
Kicsit már belekavarodtam
---
Mármint arra gondolsz, hogy listákba pakolja be egyszerűen az adatokat ? És nem is kell mögé adatbázis ?Vagy így grafikus módon berakosgatom az adatokat, és innentől kezdve csak linq-el lekérdezgetem és odarakom ?
-
amargo
addikt
"teszem azt megnézem mondjuk a 29-es számú busz menetrendjét. okés. Ezután megnézem az 1-es villamos menetrendjét, majd közvetlen ezután a 29-es buszét mégegyszer."
Ha már egyszer lent van az adat, akkor miért próbálod megint letölteni?
A gondolkodás után jó helyen keresgélsz és a hiba okát is leírtad, de nem látom értelmét, hogy minek runtime akarod letölteni az adatokat, ha utána soha nem törődsz a karbantartásával, akkor egyszerűen csak pakold bele az alkalmazásba és publikáld ki úgy.
De a menettrend azért változni szokott..
Szerk:
Elsőnek gondold végig tüzetesen, hogy mit szeretnél. Az implementálás könnyebb feladat, nyilván kell hozzá a rutin, de egy alapjaiban véve rossz tervezést nehéz foltozgatni/lekódolni.
Kérdezd meg azt is, hogy minek akarsz offline adattároláshoz leszipkázni adatokat, ha már eleve ott is tárolhatnád. Ha viszont az a célod, hogy egyszer képes legyen karbantartani magát, akkor ezt komolyabban kell végig gondolni. Továbbá mintákat is érdemes alkalmazni. Mit ahogy főzni sem úgy szoktunk, hogy mindent egybe öntünk aztán lesz, ami lesz
Mert az sokszor az eszi meg, aki főzte.. -
martonx
veterán
Én a helyedben magamra szednék egy minimális adatbázis tudást (vagy LINQtoSQL tudást), aztán DB oldalon kezelném az egész problémát. Mivel SQL CE, így ott tárolt eljárás nem játszik, mint lehetőség.
WP7-en SQL CE-nél rendesebb DB kezelőt nem lehet használni? Mondjuk SQLite-ot? Abban lenne tárolt eljárás lehetőség is. -
ubid
senior tag
Az alap koncepció :
Egy sima Menetrend adatbázis : Az adatok soha sem változnak , tehát user esélytelen, hogy változtassa.
hogy a másik kérdésre is válaszoljak .
Azért kattintok mondjuk mégegyszer a gombra :
teszem azt megnézem mondjuk a 29-es számú busz menetrendjét. okés. Ezután megnézem az 1-es villamos menetrendjét, majd közvetlen ezután a 29-es buszét mégegyszer.
Nah hogyha mégegyszer meg akarnám nézni a 29-es buszét megpróbálja feltölteni mégegyszer az adatokat, és PK ütközés.
ennyi az egész.Tehát semmit sem módosíthatok. egyszer felrakom az adatokat, és innentől kezdve csak UI-on megjelenítem, olvasom.
Kis gondolkodás után, meg a hibák tapasztalása
Gondolom rossz helyen van így ez megoldva. nem ott kéne feltölteni az adatokat.
Hanem egyszer feltöltöm és ámen.Mert az a gond, hogy egy függvényt írtam mondjuk : Ez azt csinálja amit már beírtam. tehát contexteet beállítja, csinál egy listát amibe belpakolja az adatokat és feltölti.
na de ha rákkatintok a gombomra akkor ez hívódik meg ! Ami már így akkor rossz is.
-
drkbl
őstag
Miért kattint mégegyszer a feltöltőgombra? Mert változtak az adatok. Hogy működjön? Automatikusan? Akkor a gombnyomásra elsőnek törölje az adott busz adatait, aztán vigye fel újra. Manuálisan? Ha van az adott busznak rekordja, akkor kérdezze meg, törölni akarja-e a régi adatokat. Brutálisan? Miután kattintott és lefutott a rutin, tiltsa le a gombot
Továbbá lehet kezdeti állapot (ha külön gomb van a törlésre):
Gomb engedélyezve=van adatbázis ÉS nincs benne adott busz rekord -
amargo
addikt
Mennyire állnak rendelkezésedre változás követő adatok, ha publikus helyről szeded nincs a kezedbe a kiszolgáló szerver, nincs jól beállítva, akkor csak sakkozni lehet. Bár érdekelne hátha van valami más megoldás, mert engem is érdekel.
Itt gyakorlatilag ugyan azt írtad le, mint előtte és ugyan olyan rossz is a megközelítés.
Elmondom nálam, hogy működik egy ilyen többszöri hívás esetén. Elsőnek nyilván feltöltöd az adatbázis itt nincs semmi extra, kb erre való a kódod.
Majd második hívás esetén megnézed, egy timestamp, akármi alapján hogy van-e változás azaz érdemes-e letölteni - és mit -.
Nyilván itt megfontolandó, hogy a UI-nak átadsz-e már cache adatot vagy megvárod, amíg minden a kezedben van. Közben háttérben a változást betöltöd a cache/DB-be.Te esetedbe az lehet a megoldás, hogy nem ismered a változást tartalmát ezért a kódban kell megnézned, erre adtam példád. Nyilván a cache és dynamic data-t össze kell hasonlítanod, de ezt még mindig nem teszed meg, csak letöltöd és folyton beleakarod tölteni a DB-be.
-
ubid
senior tag
Azt hogy tehetem meg, hogy van egy táblaszerkezet és hogy minden tábla olyan szerkezetű legyen amit csinálok ?
Valamint továbbra se tudtam megoldani hogyha mondjuk rákattintok a 22-es busz gombjára egy listbox-ba letöltöm az adatokat. de ha mégegyszer ugyan arra a gombra kattintok elszáll, mert mégegyszer föl akarja tölteni az adatokat.
Jelenleg így van : ( de csak ez az egy táblám van )
Ebbe az osztályba kell írnom több belső osztályt ? Elvesztem picit
[Table]
public class MenetrendTablak
{
[Column(IsPrimaryKey = true, IsDbGenerated = false, DbType = "INT NOT NULL", CanBeNull = false)]
public int Id { get; set; }
[Column]
public int Jarat { get; set; }
[Column]
public int Hour { get; set; }
[Column]
public int Sec { get; set; }
}Így van a DataContext :
public MenetrendContext()
: base("Data Source=isostore:/MenetrendDB.sdf")
{
}
public Table<MenetrendTablak> Busz12;És így készítem el az adatokat :
public class Busz22Adatok
{
public List<MenetrendTablak> Busz22Lista = new List<MenetrendTablak>();
public void Feltolto()
{
var MenetrendContext = new MenetrendContext();
if (!MenetrendContext.DatabaseExists())
{
MenetrendContext.CreateDatabase();
}
Busz22Lista.Add(new MenetrendTablak() { Id = 72, Jarat = 22, Hour = 7, Sec = 35 });
Busz22Lista.Add(new MenetrendTablak() { Id = 73, Jarat = 22, Hour = 7, Sec = 54 });
Busz22Lista.Add(new MenetrendTablak() { Id = 74, Jarat = 22, Hour = 8, Sec = 10 });
Busz22Lista.Add(new MenetrendTablak() { Id = 75, Jarat = 22, Hour = 8, Sec = 44 });
Busz22Lista.Add(new MenetrendTablak() { Id = 76, Jarat = 22, Hour = 9, Sec = 10 });
foreach (var l in Busz22Lista)
{
MenetrendContext.Busz22.InsertOnSubmit(l);
MenetrendContext.SubmitChanges();
}
}
} -
amargo
addikt
Hasonlítsd össze a két lista elem tartalmát, LINQ Except. Nyilván csak a változást kell elmentened.
Kihagyok alapvető részleteket, inkább csak a problémára adok egy megoldás vázlatot.
private void setInDB()
{
var query = (from q in DB.Buszs select q).ToList();
var insertKeys = Buszs.Select(s => s.Jarat).Except(query.Select(s => s.Jarat)).Select(s => new BuszModel { Jarat = s });
var removeKeys = query.Select(s => s.Jarat).Except(Buszs .Select(s => s.Jarat ));
foreach (var rKey in removeKeys)
{
var jarat = DB.Buszs.Where(w => w.Jarat.Equals(rKey)).FirstOrDefault();
DB.Buszs.DeleteOnSubmit(jarat);
}
foreach (var iKey in insertKeys)
{
DB.Buszs.InsertOnSubmit(iKey);
}
DB.SubmitChanges();
Messenger.Default.Send<GenericMessage<Table<JaratModel>>>(new GenericMessage<Table<JaratModel>>(DB.Buszs));
}Továbbá, nem ártana csak akkor leszedni az adatokat ha változás van.
-
ubid
senior tag
Helló!
Biztos hogy nagyon egyszerű a válasz, de valahogy én nem jövök rá .
Szóval :
Egy WP7-es alkalmazást csinálok, a helyi menetrendek nézegetésére.
SQL CE- adatbázist használok mögötte, hogy offline böngészés is biztosítva legyen.
Az egyes buszok adatait mindig külön osztályba rakom, és ott is töltöm föl, tehát egy 22-es busz körülbelül így néz ki :
class busz22 {
public List<TableStructure> Busz22Lista = new List<TableStructure>();
// lista létrehozása, amibe beletologatom az elemeket.ezen belül van egy metódus, ami feltölti az adatokat : kb így néz ki :
var MenetrendContext = new MenetrendContext();
if (!MenetrendContext.DatabaseExists())
{
MenetrendContext.CreateDatabase();
}majd az adatok létrehozása.
Busz22Lista.Add(new TableStructure() { Id = 72, Jarat = 22, Hour = 7, Sec = 35 });satöbbisatöbbi.
és végül egy foreach-el végigmegyek az elemeket és feltöltögetem így :
foreach (var l in Busz22Lista)
{
MenetrendContext.Busz22.InsertOnSubmit(l);
MenetrendContext.SubmitChanges();
}ez a feltöltő metódus a gombnyomásra hívódik meg.
Tehát ha a felhasználó mondjuk a 22-es menetrend gombját megnyomja, akkor ez így legenerálódik és elkészül.viszont, ha mégegyszer rákattint, akkor szépen elszáll az alkalmazás, merthogy PK már van olyan... nem duplikálható nyilván.
Tehát a porbléma : Hogyan tudom azt leellenőrizni , hogy ez a PK már van e. mert ha van akkor nyilván ne töltsük föl.
Hogyha meg mondjuk átállítom auto incerementre a PK-t akkor gondolom működne, de minden benne lenne előbb vagy utóbb ötszázszor a táblába :S
Nincs erre is valami, mint pl a tábla létrehozásánál a DatabaseExist ?
Köszönöm a segítséget.
-
9600se93
csendes tag
Köszönöm a segítséget, bár még nem nagyon értem ami ott le van írva a linkben. A program amúgy az angoltanulásomhoz kellene, mert a párbeszédeket nem lehet lestoppolni a játékban, ha meg videót veszek föl és úgy fordítom nagyon lassú és ez a program sokat segítene a fordításban.
-
9600se93
csendes tag
Sziasztok!
Egy ideje programozgatok C#-ban gagyi szinten és jött egy probléma amit nem tudok megoldani pedig nagyon fontos lenne. Egy olyan program kellene ami egy előre kiválasztott processt le tud stoppolni gombnyomásra de ha következőnek megnyomom a gombot már újra fut onnan ahol abbahagyta. Találtam is ilyen programot, de az a baj vele, hogy nem képes a háttérben futni és gyorsbillentyűre reagálni (3d-s teljes képernyős alkalmazás leállítására kellene). Tehát egy olyan program kéne ami háttérben fut, 2 gyorsbillentyűt kezel, az egyik lestoppolja/folytatja a processt a másik meg leteszi asztalra az adott 3d-s alkalmazást. Azt sem tudom hol kezdjek neki mivel nem ilyen stílusú dolgokat írtam meg béna is vagyok és nagyon fontos lenne a program. Ha valahogy tudtok segíteni köszönöm! -
martonx
veterán
hehehe, akkor nagyot fogsz nézni, amikor megkapod a fizetési értesítést.
Pont ez a vicc a felhőben, hogy szinte mindegy, hogy futtatod, vagy leállítod az alkalmazásodat. A helyet foglalja, sql szervert foglalja.
Gondolom még mostanában regisztráltál, és ha jól rémlik 90 napig amúgy is ingyenes.
Ha nincs sok pénzed, a helyedben nagyon odafigyelnék az Azure számlámra, mert hipp-hopp röpülnek majd az ezresek a kb. semmire (Amazon WS-es tapasztalat, ami ránézésre még olcsóbb is, mint az Azure). -
ubid
senior tag
Egyébként gondolom szinte mindenki használ facebook-ot.
A facbook-on van egy külön C# -os programozóknak készült csoport, amibe jelenleg 54 -tag van.
Köztük sok ismertebb név is előfordul : pl
eitner István (C#-os könyv írója
Balassy György, Túróczy Attila, Fár Attila Gergő,
Gondolom ezek a nevek nektek is mondanak valamit.
Készségesen áll mindenki a rendelkezésünkre.
Eddig bármi felől érdeklődtem volna, mindig érkezett rá egy órán belül válasz.A csoport ugyan zárt, de be tudok rakni embereket.
Úgyhogy akit érdekel, az írjon privátba. Garantáltan nem bánja meg = )
-
-
blex
senior tag
fél éve járok info faktra, most kezdtünk el grafikus programokat írni, úgyhogy erősen hiányos a tudásom..
van egy program tele pictureboxokkal és azt szeretném elérni, hogy aszerint jelenítsen meg valamelyikben egy képet, hogy melyik neve van eltárolva egy változóban. tehát ha a picbox változó értéke harmadik, akkor a harmadik nevű dobozba kéne betöltenie a képet. természetesen első körben lazán írtam egy ilyet
picbox.Image = global::sakktabla.Properties.Resources.q;
de nem sokra mentem vele és azóta sem jöttem rá, hogy hogyan lehetne ezt rendesen megcsinálni - szóval köszönöm előre is annak, aki kisegít -
ubid
senior tag
Elindítottam a blogom! Olvassátok, kritizáljátok, javítsatok ki !
KLIKK -
ArchElf
addikt
válasz
atti1848 #2907 üzenetére
Ha ezt egy kicssit továbbfejleszted úgy hogy a képek nem látszanak alapból és a buttonok helyett checkboxot használsz button formában gyakorlatilag memóriajátékot csinálsz - szerintem ez már elég lehet a kettesért. De ha már ötletek - tag mezőbe ne magát a képet rakd be, hanem csinálj egy List<Image> - et, amiből csak az indexet teszed bele a Tag-be. Jobban is néz ki, és szerintem jobban is értékeli a tanerő.
Tipp: esemény kezelésnél ne buttononként generálj kezelő eseményt, hanem csak egyet csinálj, ami az összes button eseményét lekezeli. Bár jobban belegondolva szerintem már neked is eszedbe jutott, amikor kipattant az ötlet
AE
-
hc89yk
csendes tag
Légyszi mindenki!
Ha valaki minimális kiinduló pontot tudna adni a problémámhoz nagyon megköszönném!
Sziasztok,
AForge.NET témakörben kérdeznék egy olyat, ha esetleg valaki tudna válaszolni, hogy:
ColorFiltering filter = new ColorFiltering();
filter.Red = new IntRange(0, 150);
filter.Green = new IntRange(170, 255);
filter.Blue = new IntRange(0, 190);
filter.ApplyInPlace(uimage);Ezzel a kódrészlettel lehet beállítani azt, hogy a program a képen melyik színre reagáljon. Ez perpillanat a zöld színt képes megtalálni. Próbálkoztam már más szín range-ének megadásával, de ezen kívül semmi másra nem reagál. Kerestem google-ban ilyet, hogy range calculator (lehet ez egy naív ötlet volt), de ilyet se találtam. Ha esetleg valaki foglalkozott már ezzel, megköszönném ha kisegítene. Legfőképpen még a kék, piros és sárga színek kellenének nekem, de igazából ha tudja valaki mi alapján lehet belőni neki a színeket, azt mégjobban megköszönném.
Előre is köszönöm a válaszokat!
Tudom, hogy már egyszer kérdeztem ugyan ezt, de gondoltam megpróbálom még egyszer, hátha most valakinek lesz egy félmondatnyi ötlete!
Előre is köszi! -
drkbl
őstag
Mindeközben, a Windows 8 Consumer Preview árnyékában: [link]
-
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Asus TUF A15 FA507NU - 15.6"FHD IPS 144Hz - Ryzen 7 7735HS - 8GB - 512GB - RTX 4050 -2.5 év gari
- Bomba ár! Dell Latitude 7390 2in1 - i7-8G I 16GB I 256SSD I 13,3"FHD Touch I HDMI I Cam I W11 I Gar
- Eredeti Windows 10 / 11 Pro aktiválókulcs AZONNALI SZÁLLÍTÁSSAL!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest