Jag ser ingen metod 'Intresse' alls, bara en 'IntresseanmalanEvent'
Så om du har postat exakt rätt felmeddelande så är det något annat som inte stämmer.
5 svar · 665 visningar · startad av annasmurf
Hej!
har probelm med No overload for method 'Intresse' takes '18' argument
private void TransferFormReceipti()
{
Bokning bokningi = new Bokning();
int hotellId = Convert.ToInt32(DropDownListHotelli.SelectedValue);
int eventId;
string fornamn = contactFirstname.Text;
string efternamn = contactLastname.Text;
string adress = gatuadress.Text;
string PostNummer = postNummer.Text;
string PostOrt = postOrt.Text;
string telefon = string.Empty;
string epost = contactEmail.Text;
string onskemal = extraInfo.Text;
int nights = Convert.ToInt32 (DropDownListAntalOvernattningari.SelectedValue);
DateTime checkInDate = DateTime.Parse(TextBoxAvresedatum.Text);
int antal = Convert.ToInt32(LabelAntalResenarer.Text);
int antalEnkel = Convert.ToInt32(DropDownListAntalEnkeli.SelectedValue);
int antalDubbel = Convert.ToInt32(DropDownListAntalDubbeli.SelectedValue);
int antalTwin = Convert.ToInt32(DropDownListAntalTwini.SelectedValue);
int antalTrippel = Convert.ToInt32(DropDownListAntalTrippeli.SelectedValue);
bokningi.IntresseanmalanEvent(hotellId, eventId, fornamn, efternamn, adress, PostNummer, PostOrt, telefon, mobiltelefon, epost, antal, antalEnkel, antalDubbel, antalTwin, antalTrippel, onskemal, nights, checkInDate);
}
klassen ser ut så här:
public void IntresseanmalanEvent(int HotellId, int eventId, string Fornamn, string Efternamn, string Adress, string PostNummer, string PostOrt, string Telefon, string Mobiltelefon, string EPost, int Antal, int AntalEnkel, int AntalDubbel, int AntalTwin, int AntalTrippel, string Onskemal, int Nights, DateTime CheckInDate)
{
string namn = Fornamn + " " + Efternamn;
string Postadress = string.Empty;
if (PostNummer.Length > 0)
Postadress = Postadress + PostNummer + " ";
if (PostOrt.Length > 0)
Postadress = Postadress + PostOrt;
BokningSchema.BokningRow bokningRow = ds2Return.Bokning.NewBokningRow();
bokningRow.HotellId = HotellId;
bokningRow.eventId = eventId;
bokningRow.transportTypeId = 1;
bokningRow.Namn = namn;
bokningRow.Adress = Adress;
bokningRow.Postadress = Postadress;
bokningRow.Telefon = Telefon;
bokningRow.Mobiltelefon = Mobiltelefon;
bokningRow.EPost = EPost;
bokningRow.Antal = Antal;
bokningRow.AntalEnkel = AntalEnkel;
bokningRow.AntalDubbel = AntalDubbel;
bokningRow.AntalTwin = AntalTwin;
bokningRow.AntalTrippel = AntalTrippel;
bokningRow.Onskemal = Onskemal;
bokningRow.DateRequest = DateTime.Now;
bokningRow.Nights = Nights;
ds2Return.Bokning.AddBokningRow(bokningRow);
bta.Update(ds2Return.Bokning);
}
Varför blir det fel jag tycker jag har 18 argument i bägge!!!!!
Jag ser ingen metod 'Intresse' alls, bara en 'IntresseanmalanEvent'
Så om du har postat exakt rätt felmeddelande så är det något annat som inte stämmer.
nä, det metoden IntresseanmalanEvent, skrev bara inte ut det i felmedleandet
usch....
18 inputparamters! Du skrämer slag på mig. Nu lämnar koden mycket annat att önska, men det första du bör göra för att komma tillrätta med sådana här problem är helt enkelt att skapa en class/strukt som kan hålla alla dessa 18 parameters och skicka in denna klass strukt till din metod istället...
public class IntresseAnmalanDataHolder{
public int HotellId{get;set;}
public int EventId{get;set;}
...
public DateTime CheckInDate{get;set;}
}
//-- Antingen använder du dig av en construktor som tar emot dina 18 parameters, eller använder du den inbyggda
//-- funktionen i .NET 3.5 som låter dig sätta parametervärdet när du skapar klassen, enkelt och snyggt i detta fallet..
IntresseAnmalanDataHolder intresseAnmalanDataHolder = new IntresseAnmalanDataHolder{
HotellId = hotellId,
EventId = eventId,
...
CheckInDate = checkInDate
};
bokningi.IntresseanmalanEvent(intresseAnmalanDataHolder);
Om du gör detta så kan du lägga mycket av din kontroll logik i IntresseAnmalanDataHolder klassens properties och din kod blir renare och enklare att läsa.
public class IntresseAnamalanDataHolder{
private string _Address;
public string Address{
get{return CreateAddress();}
set{_Address = value;}
}
public string Uppgang{get;set;}
public string Trappa{get;set;}
private string CreateAddress(){
return String.ConCat(_Address, " ", this.Uppgang, " ", this.Trappa).Trim();
}
}
om du gör så så slipper du följande kod
string adress = gatuadress.Text;
if (uppgang.Text.Length > 0)
adress = adress + " " + uppgang.Text;
if (trappor_ovr.Text.Length > 0)
adress = adress + " " + trappor_ovr.Text;
Nu är det bara exempel kod som jag gav dig, det blir nog snyggare med en stringbuilder för att bygga ihop addressen.
- M
löst detta själv, classen var inte med i kompileringen, men tack för svaren!
Berätta gärna vad som var fel och markera tråden som löst :)