Új hozzászólás Aktív témák
-
-
válasz martonx #2686 üzenetére
Designer felületen hozzáadod a tárolt eljárást, és utána használhatod.
1. Open Entity Framework Model page in Visual Studio IDE
2. Right click on blank area and choose “Add” -> “Function Import” option
3. In Add Function Import dialog, select your stored procedure, give function name and choose return type as Entities and select your custom entity from dropdown list.
4. Click on Ok button to add the function in Entity Framework
5. In your page, Create instance of entities class and call your function with proper parameter value -
-
válasz Neil Watts #2719 üzenetére
Kicsi észrevétel:
int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz[i]);
}Helyett:
listBox_adat.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7, 8 });
Stringekkel egyszerűbb:
listBox_adat.Items.AddRange(new [] { "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc" });
);---------------------------
if (textBox1_adatbe.Text != "")
{ /* ... */ }Helyett:
int egesz_be;
if (!string.IsNullOrEmpty(textBox1_adatbe.Text) && int.TryParse(textBox1_adatbe.Text, out egesz_be))
{ /* ... */ }-----------------------
Ez gyakorlatilag nincs használva:
int[] egesz = new int[egesz_be];
----------------------
Használja mindenki a var kulcsszót, ahol csak lehet.
-
válasz Jester01 #2724 üzenetére
Pont, hogy nem kavarhat be. Amikor teljesen egyértelmű az, hogy mi lesz a típus (pl. new Akarmi()), akkor miért írnám ki kétszer? Teljesen hülyeség.
Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs> d = new Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs>();
-
válasz Jester01 #2726 üzenetére
Ezt a new sorrendet nem lehet megvalósítani.
Csak egy gyenge példa rá:
IEnumerable<int> t = new[] { 12, 34};
Interface-t példányosítanék?IDictionary-t se írnám ki, hótzicher, mert minek. System.Collections.Generic.Dictionary implementálja az IDictionary-t, és még sok minden mást! Ha kiírom az IDictionary-t, akkor a többit (implementált interface-ek) ezzel el is veszítem.
Tahát, egy változtatás miatt lesz mondjuk int-ből double, de van rá overload-olt metódusom (ugyanaz a metódusnév), ami annyit tesz, hogy problem solved.
-
-
válasz Neil Watts #2730 üzenetére
Az egesz tömböt csak a hosszának a lekérésére használod, semmi másra, ezért hülyeség létrehozni is.
-
-
-
válasz Neil Watts #2740 üzenetére
Létrehozol egy ÜRES char[]-t.
Amit bejársz a ciklusoddal.
Elemet akarsz kivenni belőle, pedig ÜRES.
Ráadásul kivételnél fix indexet használsz, ami nem más, mint a tömb hossza, ami pontosan eggyel magasabb indexet jelent, mint a tömb utolsó elemének indexe. -
válasz Neil Watts #2744 üzenetére
Nem az értéke lesz egesz_be, hanem a hossza, nagy különbség.
int egesz_be;
if (int.TryParse(textBox1_adatbe.Text, out egesz_be))
{
var r = new Random();
for (int i = 0; i < egesz_be; i++)
{
listBox_adat.Items.Add((char)r.next(65, 90));
}
}
else
{
//hibakezelés :-)
} -
-
Nálunk most lesz nagy alkalmazástúrás, ami azt jelenti, hogy a kontrollok új verzióra lesznek cserélve, illetve most forgatjuk át a legtöbbet 4.0-ra, nálunk a 4.5 nem fog játszani, mert nincs rá szükség.
Egyébként nem feltétlenül rossz, csak annyi a gond, hogy sok kompatibilitási gond felléphet az újabb de nem verzióváltott DLL-ekkel. Szerintem mondjuk a legtöbb helyen nem lesz gond.
-
válasz Neil Watts #2833 üzenetére
Most páros kell vagy páratlan?
private void buttonOKrb_Click(object sender, EventArgs e)
{
if (radioButtonParatlan.Checked)
{
int q = 0;
for (int i = 0; i < veletlentar.Length; i++)
{
if (veletlentar[i] % 2 == 0) //páratlan vagy páros kell?
{
q++;
}
}
labelParatlParos.Text =q + " db páratlan számot sorsolt ki a program";
}
listBox_eredmenyKi.Items.Clear();
} -
válasz martonx #2856 üzenetére
Kapcsolatot nem is kell tudnod törölni, egyik entitást kell törölnöd a másikból, mindent lekezel ez EF.
var artist = new Artist { FirstName = "Alan", LastName = "Jackson" };
var album1 = new Album { AlbumName = "Drive" };
var album2 = new Album { AlbumName = "Live at Texas Stadium" };
artist.Albums.Add(album1);
artist.Albums.Add(album2);
///...
artist.Albums.Remove(album2); -
-
-
Márpedig a Management Studio-ban meg kell találnod. Vagy az oszlopot szerkesztve, vagy design nézetben megnyitva a táblát az oszlopra ráállva ott kell lennie, hogy "identity column" vagy hasonló. 2008-ban ezt a lent megjelenő ablakban tudtad megadni, szerintem most is ott tudod.
-
-
válasz Neil Watts #3175 üzenetére
Amikor centire ugyanazt a kódot írjuk le újra meg újra, akkor kérdezzük meg magunkról: nem tudnám ezt úgy megcsinálni, hogy ne sokszorozzam a kódom mennyiségét?
-
-
-
-
válasz martonx #3541 üzenetére
Szóval csak biztos akartál lenni, esetleg úgyis megcsinálhatod ezt, hogy egy base controller osztályt írsz, aminek felülírod az Initialize metódusát (most látom csak, hogy az MSDN is ezt hozza példának).
-
válasz Neil Watts #3596 üzenetére
Az eltolást hogyan szeretnéd kivitelezni, ahol eddig a 0. volt, ott lesz a 2. és az utolsó előtti lesz a 0.? Meg mintha túlindexelnéd a meresek tömbödet.
A hónapok nevét tudja a .NET is CultureInfo-ból.
Nem lenne jobb tömbök helyett List<T>-t használni?
A felmegnyitásod rossz, közvetlenül az olvasásnál hívd meg pl. using operátorral (vagy manuálisan try-catch-finally).Feleslegesen nem kell növelni a kódodat:
buttonOK.Enabled = textBoxHonapBe.Text == honap[0];[ Szerkesztve ]
-
válasz Neil Watts #3598 üzenetére
meresek[i + 2]
Itt indexeled túl (nem tömb, hanem a benne lévő adatok szempontjából), de egyébként ilyesmi lenne:var ujMeres = new List<string> {"ide berakod", "amit akarsz"};
ujMeres.AddRange(meresek.Select(x => x.ToString(CultureInfo.InvariantCulture))); //esetleg kell egy ToList()[ Szerkesztve ]
-
-
-
Egyrészt a kód durvának tűnik, másik, hogy valószínűleg csak abba futottál bele, hogy nem világosítottak fel a dolgok működéséről (StreamReader/Writer, IDisposable, using), a StreamWriter bufferel, viszont ezzel nem sokat foglalkozol. Ha beépíted egy using-blockba az olvasást, írást, akkor a keretrendszer mindent el fog intézni helyetted. Ha ez így nem kerek, akkor az utolsó Write után hívd meg a StreamWriter object-eden a Dispose()-t (meg az utolsó olvasás után a StreamReader-eden is).
-
Nem fogod megúszni anélkül, hogy hozzányúlnál az alap provider-hez.
(A Reflector-t ajánlanám segítségnek még, a héten is plafonig ért a sz.r, és jó volt, hogy létezett.)
[ Szerkesztve ]
-
-
-
-
válasz martonx #3861 üzenetére
Hogyne vonatkozna. Ugyanúgy működik minden, mint egy asztali alkalmazás esetében. Amikor beérkezik az első kérés, akkor lefordítja az alkalmazást, majd indulhat a kérés kiszolgálása. Ha a web.config-ban a debug True-ra van állítva, akkor nagyon lassabban fordul le. Kérések között már nincs fordítás (amennyiben már minden lefordult.)
-
-
-
-
-
válasz Neil Watts #3954 üzenetére
Ilyet hol a viharba' csinálnak?
StreamReader sr = new StreamReader(@"termek.txt");
Itt marad az idők végezetéig, vagy mi?
Plusz a rendezésekhez, keresésekhez miért nem lehet használni az IEnumerable<T> extension-öket? Még a végén olvasható lesz, mit is akarsz csinálni? Mert a kézi legózás nem lesz gyorsabb ennél ebben a formájában az biztos.
-
double keres = 22;
Termek talalat = (from x in Termekek where x.Ertek == keres select x).First();
if (talalat == null)
{
Console.WriteLine("Nincs találat");
}
else {
Console.WriteLine("Találat {0} {1} ", talalat.Nev,talalat.Suly);
}Ha nincs találat, akkor nem null lesz az eredmény, hanem egy szép exception, ezért:
var talalat = Termekek.FirstOrDefault(x => x.Ertek == keres);
-
válasz goodluckbenc #3969 üzenetére
Nem.
-
Van egy zsák eseménye, valamelyik lekezelése segíthet, pl. a ValueChanged.
-
-
válasz Neil Watts #4026 üzenetére
Miért olvasnád be külön-külön az adatokat, mikor egy sor egy valamit jelent? (Ugyanez vonatkozik a Tuple alkalmazására: átmeneti tároló olyan alkalmazásban, ahol van már model azokra az adatokra, akkor WTF?)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace ConsoleApplication1
{
internal class Model
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
class Program
{
static void Main(string[] args)
{
var list = new List<Model>();
using (var sr = new StreamReader("tavok.txt"))
{
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
if (string.IsNullOrWhiteSpace(line))
{
throw new Exception("Empty line");
}
var parts = line.Split(' ');
list.Add(new Model
{
A = int.Parse(parts[0]),
B = int.Parse(parts[1]),
C = int.Parse(parts[2])
});
}
}
list = list.OrderBy(x => x.A).ToList();
}
}
} -
Másik lehetőség:
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
internal class Model
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
class Program
{
static void Main(string[] args)
{
var sorted = new SortedList<int, Model>
{
{1, new Model {A = 1, B = 5, C = 7}},
{3, new Model {A = 3, B = 7, C = 9}},
{2, new Model {A = 2, B = 5, C = 4}},
{5, new Model {A = 5, B = 3, C = 1}}
};
foreach (var item in sorted.Values)
{
Console.WriteLine("{0} {1} {2}", item.A, item.B, item.C);
}
Console.ReadLine();
}
}
}Ha nem simétlődik az A adat:
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
internal class Model
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
class ModelComparer : IComparer<Model>
{
public int Compare(Model x, Model y)
{
if (x.A > y.A)
{
return 1;
}
return x.A == y.A ? 0 : -1;
}
}
class Program
{
static void Main(string[] args)
{
var sortedSet = new SortedSet<Model>(new ModelComparer())
{
new Model {A = 1, B = 5, C = 7},
new Model {A = 1, B = 5, C = 7},
new Model {A = 3, B = 7, C = 9},
new Model {A = 2, B = 5, C = 4},
new Model {A = 5, B = 3, C = 1}
};
foreach (var item in sortedSet)
{
Console.WriteLine("{0} {1} {2}", item.A, item.B, item.C);
}
Console.ReadLine();
}
}
}[ Szerkesztve ]
-
-
-
válasz leximester #4232 üzenetére
Persze, mert az alkalmazáslogikád teljes mértékben a GUI szálon fut. Indítani kell egy háttérszálat (Task library, BackgroundWorker) valamilyen módon, amit pl. le tudsz állítani a GUI szálról, amikor változik valami.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!