Vinnaren i pepparkakshustävlingen!
2015-08-25, 01:41
  #2557
Medlem
Citat:
Ursprungligen postat av Sitkin
Har en snabb fråga till er som använder NHibernate som or/m. Man kan alltså inte radera en rad genom att använda en unik attribut när man använder ISession delete metoden? Delete funkar alltså bara med identitetsnyckeln?

T.ex:
Kod:
public void DeleteByMail(User user)
        {
            
using (ISession mySess sessionFactory().OpenSession())
            {
                
using (ITransaction transaction mySess.BeginTransaction())
                {
                    
user = new User("abc.bca@hotmail.com");//unik attribut. Inte pk.
                    
mySess.Delete(user);//Inget händer. Jag får inte heller något felmeddelande. 
                    
transaction.Commit();
                }
            }
        } 

Har du satt den i en try catch för att se att du inte sväljer nått?

Annars skulle jag rekommendera att först gör en find på entityn, hittar du entiteten du letar efter så gör du en delete. Det är nog mer säkert än att hårdkoda in ett värde. Vill du hårdkoda in nått så kan du skriva in en hql-fråga rakt i deleten?

MySess.Delete(from user u where u.mail="abc.bca@hotmail.com")

Men jag vet inte... Jag är trött just nu

http://nhibernate.info/doc/nhibernat...gdata-deleting
Citera
2015-08-25, 15:55
  #2558
Medlem
Sitkins avatar
Citat:
Ursprungligen postat av React
Har du satt den i en try catch för att se att du inte sväljer nått?

Annars skulle jag rekommendera att först gör en find på entityn, hittar du entiteten du letar efter så gör du en delete. Det är nog mer säkert än att hårdkoda in ett värde. Vill du hårdkoda in nått så kan du skriva in en hql-fråga rakt i deleten?

MySess.Delete(from user u where u.mail="abc.bca@hotmail.com")

Men jag vet inte... Jag är trött just nu

http://nhibernate.info/doc/nhibernat...gdata-deleting
Löste det såhär:
Kod:
pUserAccount mySess.QueryOver<PendingUserAccount>().Where(=> p.UserMail == mail).SingleOrDefault<PendingUserAccount>();
                    
mySess.Delete(pUserAccount);
                    
transaction.Commit(); 
Tycker att det ser bättre ut med lambda istället för att använda magic strings.

Jag var dock så bekväm med session.Delete(obj). Dock fungerar det bara när man raderar via identitetsnyckeln.
__________________
Senast redigerad av Sitkin 2015-08-25 kl. 15:57.
Citera
2015-08-29, 14:01
  #2559
Medlem
WPF Fråga:

När jag klickar på en knapp och sänder den till en metod som många knappar skickas till, hur gör jag så att metoden vet vilken knapp som det har tryckts på? Googlar men hittar inget.

Finns alltså flera knappar som kan komma in i metoden, hur skriver jag kod för att veta vilken knapp som anropar metoden?
Citera
2015-08-30, 13:20
  #2560
Medlem
Citat:
Ursprungligen postat av gulstol
WPF Fråga:

När jag klickar på en knapp och sänder den till en metod som många knappar skickas till, hur gör jag så att metoden vet vilken knapp som det har tryckts på? Googlar men hittar inget.

Finns alltså flera knappar som kan komma in i metoden, hur skriver jag kod för att veta vilken knapp som anropar metoden?

Tror du får skapa ett Button objekt och sen köra någon if-sats som kollar vilken knapp det är och isåfall om det är rätt knapp så antar jag att du vill göra något.
Citera
2015-09-02, 22:02
  #2561
Medlem
TexasSwedes avatar
OK, jag har precis börjat lära mig C#, och har en första dum fråga.

Ponera att jag har fem knappar (button1, button2, etc).
Varje knapp har en text (som label): "Ett", "Två", etc.

Nu vill jag att när när man klickar på en knapp så får man upp ett meddelande som säger till exempel "Du har tryckt på knappen Ett".

Inga problem, bara att lägga in följande kod på varje knapp:
Kod:
MessageBox.Show("Du har tryckt på knappen Ett");

Vad jag vill göra är att inte behöva lägga in samma kodrad på alla fem knappar.
Det är ju enkelt att läsa knappens label:
Kod:
MessageBox.Show("Du har tryckt på " + button1.Text);

Nu är mina frågor:
1) Hur ersätter jag button1 med något generellt, motsvarande $(this) i jQuery?
2) Kan jag skapa något slags lyssnare som pekar på alla fem knapparna och exekverar kodraden oavsett vilken knapp som trycks? Och hur kan denna lyssnare avgöra vilken knapp som trycktes, så jag kan läsa rätt värde?

Något motsvarande detta:
Kod:
$(".button").each( function() {
    alert( "Du har tryckt på " + $(this).text() ):
});

Någon som har ett förslag?

edit: Kanske är samma/liknande som frågan ovanför: (FB) Den stora tråden för snabba nybörjarfrågor
Citera
2015-09-02, 22:46
  #2562
Medlem
Citat:
Ursprungligen postat av TexasSwede
OK, jag har precis börjat lära mig C#, och har en första dum fråga.

Ponera att jag har fem knappar (button1, button2, etc).
Varje knapp har en text (som label): "Ett", "Två", etc.

Nu vill jag att när när man klickar på en knapp så får man upp ett meddelande som säger till exempel "Du har tryckt på knappen Ett".

Inga problem, bara att lägga in följande kod på varje knapp:
Kod:
MessageBox.Show("Du har tryckt på knappen Ett");

Vad jag vill göra är att inte behöva lägga in samma kodrad på alla fem knappar.
Det är ju enkelt att läsa knappens label:
Kod:
MessageBox.Show("Du har tryckt på " + button1.Text);

Nu är mina frågor:
1) Hur ersätter jag button1 med något generellt, motsvarande $(this) i jQuery?
2) Kan jag skapa något slags lyssnare som pekar på alla fem knapparna och exekverar kodraden oavsett vilken knapp som trycks? Och hur kan denna lyssnare avgöra vilken knapp som trycktes, så jag kan läsa rätt värde?

Något motsvarande detta:
Kod:
$(".button").each( function() {
    alert( "Du har tryckt på " + $(this).text() ):
});

Någon som har ett förslag?

edit: Kanske är samma/liknande som frågan ovanför: (FB) Den stora tråden för snabba nybörjarfrågor

http://postimg.org/image/qttgy8g4t/

Jag har gjort en bild till dig som visar hur man gör. Jag hade samma problem som dig igår/förrgår, men sen fick jag hjälp och då blev det enkelt

Så man markerar en knapp, då går man till events och väljer eventet click för att säga vilken metod prorammet ska gå till vid klick. Välj det metod namn du vill ha, så genererar den metoden åt dig. Annars kan du skapa en metod själv innan som du skriver in där.

För att komma åt knappens namn så måste man casta om sender till en Button, då namnet ligger på Button klassen. object sender innehåller information om det som anropade metoden, i det här fallet en av knapparna.

Hoppas du lyckas lösa uppgiften nu, annars är det bara fråga något

**Edit

Med det här knepet så klarar du dig med en metod, istället för 3 stycken. Jag hade ett program tidigare där jag först hade 10 separata metoder, och med det här så gick det ner till 1 metod. Så det är riktigt bra att kunna!

Det är inte heller en dum fråga att ställa, jag har hållt på med C# och .net i ett år nu och visste inte. Men jag håller i och för sig mest på med consoll appar, har precis börjat med gui, visuella appar
__________________
Senast redigerad av gulstol 2015-09-02 kl. 22:53.
Citera
2015-09-03, 16:45
  #2563
Medlem
Fråga:

Hur kan jag göra så att när jag maximerar programmet i wpf/windows forms (spelar ingen roll vilken av dom) så följer knapparna med? Jag vill att knapparnas plats och storlek ska anpassa sig till programmets storlek. Som det är nu så om jag maximerar så stannar dom kvar på samma plats och det ser fult ut
Citera
2015-09-03, 22:51
  #2564
Medlem
TexasSwedes avatar
Citat:
Ursprungligen postat av gulstol
http://postimg.org/image/qttgy8g4t/

Jag har gjort en bild till dig som visar hur man gör. Jag hade samma problem som dig igår/förrgår, men sen fick jag hjälp och då blev det enkelt

Tack så jättemycket! Ska testa när jag kommer hem, sitter på jobbet nån timme till.

Det här var till en uppgift i min college-klass, fast vi skulle bara köra MessageBox.Show() i varje click-event. Jag har redan lämnat in det "korrekta" versionen, men jag vill lära mig hur man gör det på ett smartare sätt. :-)
Citera
2015-09-03, 23:51
  #2565
Medlem
TexasSwedes avatar
Citat:
Ursprungligen postat av TexasSwede
Tack så jättemycket! Ska testa när jag kommer hem, sitter på jobbet nån timme till.

Det här var till en uppgift i min college-klass, fast vi skulle bara köra MessageBox.Show() i varje click-event. Jag har redan lämnat in det "korrekta" versionen, men jag vill lära mig hur man gör det på ett smartare sätt. :-)

Fungerade perfekt! Ska visa det för läraren nästa vecka, han visste inte heller hur man gjorde detta i C# (han är ganska ny på det).
Citera
2015-09-07, 11:06
  #2566
Medlem
if sats

Tjipp.. Är ju en nybörjare inom detta, kommit 120s i programmering 1, gör så gott jag kan o försöker leta hjälp/lösningar överallt i timmar innan jag börjar fråga om hjälp, så jag återkommer nog hit flera ggr..

jag har:
menyn "mata in temperatur", om jag skriver "q" så ska programmet stoppa, skriver jag siffror tex 22 så ska den gå in i nästa if o nästa if mm o till slut skriva ut ett värde varpå man kommer tillbaka till menyn "mata in temperatur" igen..

allt funkar som jag vill, men hur får jag till att kunna skriva "q", det ska bara vara en ReadLine, har nu en double.Parce..
Citera
2015-09-07, 11:13
  #2567
Medlem
tj.s avatar
Citat:
Ursprungligen postat av TpWebb
Tjipp.. Är ju en nybörjare inom detta, kommit 120s i programmering 1, gör så gott jag kan o försöker leta hjälp/lösningar överallt i timmar innan jag börjar fråga om hjälp, så jag återkommer nog hit flera ggr..

jag har:
menyn "mata in temperatur", om jag skriver "q" så ska programmet stoppa, skriver jag siffror tex 22 så ska den gå in i nästa if o nästa if mm o till slut skriva ut ett värde varpå man kommer tillbaka till menyn "mata in temperatur" igen..

allt funkar som jag vill, men hur får jag till att kunna skriva "q", det ska bara vara en ReadLine, har nu en double.Parce..
Double.Parse använder du för att få ditt program att översätta en string till en double och är ingenting du ska använda om du bara vill få tag på vad användaren matar in för text.
Kod:
string input Console.ReadLine();
if (
input == "q" || input == "Q")
{
    
//gör något här...

Citera
2015-09-07, 12:57
  #2568
Medlem
jo så långt är jag med men iom att det bara finns en ReadLine för hela programmet: mata in temp --> if temp="q" så stopp, else if temp<17 så "gör en uträkning o skriv ett värde" else if temp>25 "gör en uträkning o skriv ett värde" else skriv den inmatade temp..

här är min kod, jag ska få in ett stopp om jag matar in q, matar jag in ett tal ska det fortsätta..
Kod:
 static void Main(string[] args)
        {
            do
            {
                Console.WriteLine("Mata in temperatur:");
                double temperatur = double.Parse(Console.ReadLine());

                
                if (temperatur < 17)
                {
                    double tal = 17 - temperatur + temperatur + 3;
                    Console.WriteLine("Temperaturen ställs till: " + tal);
                   
                }
                else if (temperatur > 25)
                {
                    double tal = temperatur + 20 - temperatur;
                    Console.WriteLine("Temperaturen ställs till: " + tal);
                   
                }
                else
                {
                    Console.WriteLine("Temperaturen är " + temperatur);
                }
            } while (true);
        }
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback