Hirdetés
- Vodafone mobilszolgáltatások
- Milyen okostelefont vegyek?
- Garmin Instinct – küldetés teljesítve
- Honor Magic6 Pro - kör közepén számok
- Megjelentek a Vivo telefonjai Magyarországon, ezek az induló árak
- Yettel topik
- Samsung Galaxy Watch - időtálló
- Nothing Phone 2a - semmi nem drága
- Azonnali navigációs kérdések órája
- Honor 200 Pro - mobilportré
Új hozzászólás Aktív témák
-
-
Jhonny06
veterán
Sziasztok!
Van egy feladat, amiben elakadtam. Idáig sikerült megírni, a következő lépést viszont nem értem.
"Az Adatbázis példányosításkor hozzon létre véletlenszerű Hallgatókat és azokból 20-30 darabot (maga a darabszám is legyen véletlenszerű)."
Megvan az üres Adatbázis osztályom. Példányosításkor, azaz nyilván a konstruktorba kell valamit mókolni. Az is világos, hogy az előző osztály (Hallgato) objektumaiból kellene egy tömb, hozzá egy Random érték, 20-30 között. De ezt hogy valósítom meg? Adattagként létrehozom az objektumtömböt és a konstruktorban egy for ciklusban kapják meg az "értéket"? Meg ezentúl a Adatbazis osztály példányával hogy érem el, mint tömb? Magát a szintaktikáját értem a dolognak, "csak" a logikáját nem, hogy mit akar megvalósítani. Valami ilyesmire gondoltam (a Random sincs túl jó helyen ):
class Adatbazis
{
public static Random rand_adatbazis = new Random();
public int tomb_hossz = rand_adatbazis.Next(20, 30);
private Hallgato[] tomb;
public Adatbazis()
{
for (int i = 0; i < tomb_hossz; i++)
{
tomb[i] = new Hallgato();
}
}
}[ Szerkesztve ]
-
Jester01
veterán
válasz Jhonny06 #2604 üzenetére
Igen, nagyjából jó. Ahogy írod, a Random nincs jó helyen, mint ahogy a tomb_hossz is jobb lenne magában a konstruktorban. Ami azonban ezeknél fontosabb hiányosság az az, hogy a tömböt magát is létre kell hozni, vagyis ilyesmi kellene még bele, mielőtt az elemeket kezded el piszkálni:
tomb = new Hallgato[tomb_hossz];
[ Szerkesztve ]
Jester
-
Jhonny06
veterán
válasz Jester01 #2605 üzenetére
A konstruktorba írva az egészet jó lenne, vagy muszáj az osztály adattagjaként megmaradnia? Igazából ezt így korábban is sikerült létrehozni, de a logikáját nem értem, hogy ezek után egy Adatbazis példánnyal mit lehet kezdeni, hogy lehet elérni a másik osztály objektumait?
class Adatbazis
{
public Adatbazis()
{
Random rand_adatbazis = new Random();
int tomb_hossz = rand_adatbazis.Next(20, 30);
Hallgato[] tomb = new Hallgato[tomb_hossz];
for (int i = 0; i < tomb_hossz; i++)
tomb[i] = new Hallgato();
}
} -
ArchElf
addikt
válasz Jhonny06 #2606 üzenetére
És tömb helyett használ List<T>-et, nem kell annyit mókolni vele.
class Adatbazis
{
List<Hallgato> hallgatok = new List<Hallgato>();
public Adatbazis()
{
Random randAdatbazis = new Random();
int tombHossz = randAdatbazis.Next(20, 30);
for (int i = 0; i < tombHossz; i++)
hallgatok.Add(new Hallgato());
}
}AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
shev7
veterán
válasz Jhonny06 #2600 üzenetére
Valaki javitson ki, en szenvedek fogalom zavarban? Van a class es annak egy peldanya az object. Szoval egy objektum es egy peldany az ugyan az, nem?
[regen oo-ztam mar...]
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
nyunyu
félisten
Benazok C#-ban egy programot, ami MS SQL adatbazisban elore legeneralt adatokat olvas be, es par valtozotol fuggoen masik tablakba szurja be a rekordokat.
Ide-oda pakolando rekordokban szerepel kezdo es vegdatum (utobbi lehet NULL!)Ennek oromere hasznalnam az SqlDateTime tipust, tok jo, frankon mukodik vele az adatbazisbol olvasas, nem kell figyelni arra, hogy a bemenet lehet NULL is.
Szivas resze ott van, hogy kezzel raknam ossze a szervernek feladando SQL queryt (hiba eseten logolhato, utolag kezzel futtathato, stb ), de ezzel a tipussal erosen meggyult a bajom.
Szoval rakom ossze a queryt:
SqlCommand cmd=new SqlCommand("",conn)
cmd.CommandText = "INSERT INTO blabla VALUES ("+vegDatum+")";Arra hamar rajottem, hogy ennek az eredmenye csak akkor helyes SQL szintaktikailag, ha a vegDatum NULL.
Ha nem NULL, akkor aposztorofok koze kell tenni a datumot.
cmd.CommandText = "INSERT INTO... VALUES ('"+vegDatum+"')";Csakhogy ennek az eredmenyet sem eszi meg az SQL 2005, mert a magyar Windows a datum moge pontot tesz (pl. 2011.12.16. 00:25:00 )
Pont nelkul megenne...Szoval hogyan lehet epkezlab, SQL altal emesztheto formaju stringge alakitani az SqlDateTime tipust?
ToString() metodusa ugyanigy pontot tesz a nap moge, formazni meg nem lehet.
Ez erosen ganyolas szagu, de legalabb mukodik:
DateTime vegD=(DateTime)vegDatum;
cmd.CommandText = "INSERT INTO... VALUES ('"+vegD.ToString("yyyy-MM-dd HH:mm:ss)"+')";Hello IT! Have you tried turning it off and on again?
-
nyunyu
félisten
Tobb szerverre is be kell szurni ugyanazokat a rekordokat, raadasul az irodai fejleszto kornyezetunkben (SQL2000) van csak identity a tablan, igy eloszor ide kell beszurni az uj mukodesi parametereket, hogy a visszakapott ID-vel tudjam beirni az eles SQL2005-on levo tablaba.
Ha nem egyezik a ket rendszer ID-je, akkor kovetkezo fejlesztes elesitesnel (=komplett parameter tabla export) javithatatlanul hazavagnam az eles rendszeren addig gyujtott statisztikai adatokat.
Nyilvan meg lehetne csinalni tarolt eljarasokkal is, es C#-ban csak kattintgatos webes feluletet osszerakni, ami meghivja, de a linked servert nem szeressuk, kulonbozo SQL verziok kozott elegge korlatozottan mukodik.
Raadasul a tarolt eljarasnak is at kell adni valahogy a datum parametert, vagyis ugyanott vagyok, mint most.
[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
amargo
addikt
Replikáció? Iinterface-ek létrehozása webservice közöttük, stb.
Kis millió lehetőség adott, de ahhoz bővebben kellene ismerni a problémát. Csak azért furcsa, mert én évek óta nem használtam c#-ban sql-t és itt sem látom be miért kellene?Én úgy gondoltam, hogy valami wcf, EF, stb használnál hozzá.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
nyunyu
félisten
Replikacio SQL2000 alatt elmeletileg lehetseges, gyakorlatban meg csak a gond van vele, ugyhogy inkabb nem eroltetjuk.
Nem kell ennyire tulspilazni a dolgot, egy egyszeru webes cuccot akarok osszerakni, ahol supportos kollega beir kb. 2 adatot, plusz kivalasztja 2 legordulo listabol, ami neki kell, aztan nyom egy gombot, es a program legeneralja azt a par adatbazis rekordot, amit jelenleg en szoktam kezzel letrehozni a fejlesztoi rendszeren, aztan manualisan attolteni az elesre.
Igy a support par perc alatt be tudja maganak allitani azt, amit en kezzel szoktam fel ora alatt, aztan nem este 6-kor talalnak meg ilyen hulyesegekkel, hogy masnap reggelre kell 10 mukodo telefonvonal az ugyfelnek, ilyen meg ilyen beallitasokkal.Nyilvan egyszerubb lett volna odamenni valamelyik webes fejlesztonkhoz, aztan ket nap alatt osszerakta volna, amivel en tokoltem egy hetet, de hat nekem is kell a gyakorlat, meg amugy sem volt jobb dolgom.
[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
martonx
veterán
Legvégül leírtad a megoldást. Ez nem gányolás, SQL-ben a dátum formátum mindig is egy nehézkesen megfogható dolog volt a magyar dátumokkal.
Viszont ahogy amargo írta, az egész programod gány, mert ez egy tipikusan sql oldalon megvalósítandó feladat. Minden amit írtál megoldható sql-ben. Ettől függetlenül szived joga, bármivel elütni az időt, mi csak próbálunk az optimális megoldás felé terelni. És hidd el megtanulni SQL-ezni jóval hasznosabb dolog, mint megtanulni megírni egy hello world szintű programot C#-ban.
Én kérek elnézést!
-
zedecske
tag
Hello
Egy hete kezdtem el C#-ban programozni(a tomeg felhordul ). Elotte azert voltak proggolasi tapasztalatok, leginkabb delphi, de az kotottnek bizonyult, igy a Visual Studio 2010 Express mellett dontottem.
Vegigolvastam a "datagridview" tag gyorskereseset (~25 bejegyzes), de nem talaltam olyan problemat, ami olyan mint az enyem.A problema a kovetkezo: van egy datagridview, ami fel van toltve adatokkal, bizonyos lekerdezesek szerint (szoveges fileokbol, uh nincs datasource hozza). A kilistazasnal ha a juzer belekattint egy cellaba, es modositja, azt nekem le kene kezelni, vagyis tudnom kene, hogy a cella tartalma megvaltozott, es foleg melyik cellae.
private void dataGridView1_SelectedValueChanged(object sender,DataGridViewCellEventArgs e)
{
MessageBox.Show("Cell Changed:"+e.ColumnIndex+" / "+e.RowIndex);
}erre gondoltam, de tojik a fejemre.
MOD: gugliztam a temaban eleget, most is azt csinalom
Vki tudna segiteni egy ilyen prognoobnak mit en?
Elore is koszi
Z
[ Szerkesztve ]
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
zedecske
tag
Hat a problema ott kezdodik, hogy meg sem jelenik a messagebox.
Guglizok orult modjara, de az MSDN megoldasa nem jon be, vmi eventhandlerekkel kene buveszkedni, azt is megprobaltam, nem jott be, most eppen a dataGridView1_CellEndEdit metodust probalgatom, nem sok sikerrel.
Emlitettem hogy kezdo vagyok c#-ban ?[ Szerkesztve ]
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
zedecske
tag
válasz martonx #2625 üzenetére
protected override void OnLoad(EventArgs e)
{
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
}
public void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Visible != false)
{
MessageBox.Show("Cella modositva: " + e.RowIndex+"/"+e.ColumnIndex);
}
}Igy muxik, koszi.
Azert irtam le, hogy legyen egy megoldas, amire ra lehet keresni.
Keresoszavak: datagridview event handler cellvaluechanged
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
Blake1757
csendes tag
Sziasztok! Elég kezdő szinten állok az asp.net programozás terén. Gondoltam mivel az is C# alapú csoda talán tudtok segíteni..
A problémám a következő:
Formból kinyerem a textboxok és checkboxok tartalmát, majd szeretném ezeket a már meglévő adatbázisomba menteni. Valami oknál fogva semmilyen hibát nem jelez a kódban, viszont futtatáskor a követkő hibával megáll ott, ahol azt vizsgálom, hogy minden adatot megadott-e... itt a kód is.. Ha semmit nem adok meg, akkor az else ág működik és kiírja, hogy hibás adat...
Annyi magyarázat még, hogy post-tal küldöm a formot és önmagát hívja meg.
Itt a hibaüzenet amit kapok: "NullReferenceException was unhandled by user code.... másik sor Object reference not set to an instance of an object."
Valójában leginkább az a baj, hogy nem nagyon tudok angolul, mert még csak most kezdtük a tanulását... ez a feladat is suliba kell... Persze a tanár csak kiadta a feladatot, te meg találd meg hogyan kell... Visual Studio 2010-et használunk...
Kérlek titeket nézzétek meg és segítsetek, mi lehet a hiba... Előre is köszi
<%
string nev = Request.Form["nevtb"]; //név ha van
string irszam = Convert.ToString(Request.Form["irszamtb"]);
string varos = Request.Form["varostb"];
string cim = Request.Form["cimtb"];
string telefon = Convert.ToString(Request.Form["telefontb"]);
string email = Request.Form["emailtb"];
string darab = Convert.ToString(Request.Form["darabtb"]);
string szamlanev = Request.Form["szamlanevtb"];
string szamlairszam = Convert.ToString(Request.Form["szamlairszamtb"]);
string szamlavaros = Request.Form["szamlavarostb"];
string szamlacim = Request.Form["szamlacimtb"];
string ado = Convert.ToString(Request.Form["adotb"]);
string szamla = Request.Form["szamlacb"];
string nyugta = Request.Form["nyugtacb"];
string postai = Request.Form["postacb"];
string szemelyes = Request.Form["szemelycb"];
if (nev == null)
{
%>
<%
}
else
{
if (irszam.Length != 0 && varos.Length != 0 && cim.Length != 0 && telefon.Length != 0 && email.Length != 0 && darab.Length != 0 && szamlanev.Length != 0 && szamlairszam.Length != 0 && szamlavaros.Length != 0 && szamlacim.Length != 0 && ado.Length != 0)
{
AccessDataSource1.InsertCommand = "INSERT INTO siker (Név, Irszám, Város, Cím, Telefon, Email, Szamla, Nyugta, Darab, Szamlairszám, Szamlanev, Szamlavaros, Szamlacim, Adoszam, Postai, Szemelyes) VALUES ('" + nev + "','" + irszam + "','" + varos + "','" + cim + "','" + telefon + "','" + email + "','" + szamla + "','" + nyugta + "','" + darab + "','" + szamlanev + "','" + szamlairszam + "','" + szamlavaros + "','" + szamlacim + "', '" + ado + "','" + postai + "',,'" + szemelyes + "')";
Response.Write(AccessDataSource1.InsertCommand);
Response.Write("<br>Az adat eltárolva");
AccessDataSource1.Insert(); //beszúrást végrehajtja
}
else
{
Response.Write("Hibás adat");
}
%>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/siker.accdb"></asp:AccessDataSource>
<%} %>sose adom fel... :D
-
veterán
válasz Blake1757 #2627 üzenetére
Azt gyanítom, hogy a Request.Form-ból nem talál meg valamilyen mezőt. A teljes hibaüzenet (stack) talán segíthetne. Vagy nézd meg, hogy egyáltalán adsz-e át valamit debug módban.
Az
"if (nev == null)
{%>
<%
}
else"helyett vizsgáld azt az esetet, ahol történik is valami. Ha a nev != null, akkor... így a másik ág nem is kell majd.
-
Blake1757
csendes tag
Sajnos azt hiszem magában az insert résznél van problémám... kikommenteltem azt a részt, amikor vizsgálom, hogy üresek -e a textboxok...
az kaptam, hogy
"OleDbException was unhandled by user code...
szintaktikai hiba az insert to utasításnál..."Tud valaki segíteni, hogy milyen módon írjak az adatbázisba? vagy nem jól adtam meg magát az Insert utasítást?
Előre is köszi
sose adom fel... :D
-
martonx
veterán
válasz Blake1757 #2629 üzenetére
Szia!
A jelek szerint több hiba is van a kódódban.
1. hiba, valahol nem kezeled le, hogy üresen maradt valami a formodban.
2. hiba, nem jó az insert utasításod, ami persze simán lehet, hogy csak az előző kikommentezésed eredménye.Mindenképpen debugolva kellene rájönnöd az 1-es hibádra, majd azt javítva a 2-es lehet magától megoldódik.
Én kérek elnézést!
-
Blake1757
csendes tag
válasz martonx #2631 üzenetére
Köszönöm a válaszotokat.
Megnéztem, hogy az access-ben sikerül -e ez az inser into utasítás, kicsit át kellett alakítanom, és működött. Kicseréltem a kódban is, de ugyanúgy megáll az
AccessDataSource1.Insert(); parancsnál és azt mondja szintaktikai hiba.... nem tudom mit tudnék még rajta alakítani. A beszúrás előtt vizsgálom az összes textboxot és checkboxot, hogy üres -e... (bár a checkboxnál van egy if, hogy ha az egyik be van jelölve akkor a másik automatikusan null értékű). Mindig a fenti parancsnál áll meg és ezzel a szöveggel...Ha tudtok valami okosat mondani azt örömmel fogadom...
Előre is köszönöm Henrietta
[ Szerkesztve ]
sose adom fel... :D
-
ArchElf
addikt
válasz Blake1757 #2632 üzenetére
Próbáld meg, hogy a mezőneveket berakod szögletes zárójelek közé: [mezőnév].
Amúgy az adatbáziskapcsolatot egyáltalán felépíti az ASP?
AccessDataSource1 inicializálva van egyáltalán?
Nem az IF-ben hal meg? Biztos nem írtál el valamit az elején a változónevekben?
Ha beállítod a breaket az If-re mindegyik változónak van értéke?AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Blake1757
csendes tag
válasz ArchElf #2634 üzenetére
A hibát az accessdatasource1.Insert(); parancsnál dobja fel, hogy szintaktikai hiba, bár az insert into parancsom az accessen belül teljesen jól működik... Elméletileg így kellene működnie, de valami miatt nem tetszik neki... Sajnos még nem jöttem rá a hibára, de erősen próbálkozom Köszönöm a segítségeteket
Üdv Heni
sose adom fel... :D
-
zedecske
tag
Sziasztok, ujra en.
Egy tok egyszerunek tuno probleman vagyok elakadva.
van a File.Exist metodus ami igy mukodne az MSDN szerint:
if (File.Exists(@"c:\\akarmi\\akarmi.txt"))
{
//kod;
}ezzel nincs is semmi gond. de amikor valtozokat akarok vele megetetni, ily modon:
pathstr = Path.GetFullPath("akarmi.txt");
if (File.Exists(@pathstr+ "\\" + "akarmi.txt"))
{
//kod
}
Igy mar nem fogadja el a gyomra(nem valosul meg a true ag). Van valami otletetek, hogyan lehetne ezt kivitelezni?MOD:
elotte beallitottam az aktualis mappat System.IO.Directory.SetCurrentDirectory segitsegevel.
Koszonnem elore is
Z
[ Szerkesztve ]
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
zedecske
tag
válasz ArchElf #2638 üzenetére
Ezt az infot koszonom,de:
ha igy hasznalom:
pathstr = Path.GetFullPath("counter.dat");
if (File.Exists(pathstr+"\\"+"counter.dat"))
{
//kod;
}akkor sem talal semmit,
pathstr = Path.GetFullPath("counter.dat");
if (File.Exists(@pathstr+"\"+"counter.dat"))
{
//kod;
}ezt meg nem engedi az editor, mert csak egy escape char "\"
en arra gyanakodok, hogy ha en beallitom az aktualis mappat a setcurrentdirectory-val, attol meg nem tudja, hogy abban a mappaban keresse az adott filet.
Tanacstalan vagyok, mint egy kiskozseg
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
-
zedecske
tag
válasz kingabo #2640 üzenetére
Asszem agyhugykovet kaptam igy az unnepek elott.
Ugyanis: hiaba deklaralok akar lokalis, akar globalis valtozot, a debug mind a kettot figyelmen kivul hagyja. Nem is listazza ki a berakpointra futas utan.
Nem tudom hogy mi a *sipszo*-t *sipszo*-zik velem ez a *sipszo*-s kis *sipszo* (szuletesi neven: Visual Studio 2010 Express) , de asszem mara befejeztem. Kulonben is holnap mar karacsony.
Majd felvetem a problemat unnepek utan, az addigra kinott hajammal.Boldog, c#-mentes karacsonyt kivanok az egybegyulteknek!
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
x007
tag
válasz zedecske #2641 üzenetére
Nem ártana helyesen értelmezni a használt metódus dokumentációját. link
Ebből már tisztán látszik, hogy hülyeséget csinálsz. Helyesen:
Directory.SetCurrentDirectory(dirPath);
string filePath= Path.GetFullPath("counter.dat");
if (File.Exists(filePath))
{
//kod;
}Egyébként én inkább a Path.Combine használatát javasolom, eképpen:
string filePath= Path.Combine(dirPath, "counter.dat");
if (File.Exists(filePath))
{
//kod;
}[ Szerkesztve ]
-
mttssz
senior tag
Hello!
Elég kezdő vagyok még C#-ban, és nem értem hogy [ebben] a kódban mi a hiba? Ha az 1-t írom be a program futásának kezdetén, akkor rendesen végigmegy, kiszámolja, de ha a 2-t, akkor hibát ír ki és kilép...MaTMaN
-
Jhonny06
veterán
Fölösleges az az a és b változó az elején, az if elágazásba egyszerűen x == 1-et és x == 2-t írj. Amúgy meg az if blokkokat érdemes teljes egészében elválasztani, mert bár egyértelműen továbbfut, okozhat kellemetlenséget és az olvashatósága sem a legjobb. Nekem így lefut szépen.
[ Szerkesztve ]
-
veterán
Igen, a legnagyobb hiba, hogy az if-ek nem voltak blokkban. Egyébként ha szebben akarod csinálni, akkor switch-et használj, valamint a z óra, perc, másodperc is bőven elég egyszer, felesleges ennyi változóval operálni. az egyik intből másikba pakolást pedig szerintem töröld az emlékeidből.
Ja, és az intbe konvertálás simán el tud hasalni, ha mondjuk egy betűt írok be. Jobb megoldás az int.Parse(Console.ReadLine()); és ezt kezelni.
[ Szerkesztve ]
-
zedecske
tag
Hat ahogy magamat ismerem, nem ez lesz az utolso baromsag amit elkovetek... De koszonom a valaszt, unnepek utan ujra probalkozom, ha a debugger is ugy akarja.
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
-
zedecske
tag
To switch to the Debug or Release configuration quickly
On the Standard toolbar, choose either Debug or Release from the Solution Configurations list box. This toolbar is not available in the Visual Basic Express or Visual C# Express.
Gondolom ez lehet a problemam... , merhogy Expresst hasznalok.
De azert koszi a valaszokat, sokat segitett, majd a workaround is kiforrja magat.
[ Szerkesztve ]
A Fallout 3 igenis netes játék, mert mire összeguglizod az összes bugfixet, addigra több időt töltesz online, mint gameplay-el .-.
Ú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!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest