webForumDet fria alternativet

konverteringsproblem

2 svar · 338 visningar · startad av b3rra

b3rraMedlem sedan juli 2004103 inlägg
#1

Hej,

Jag lyckas inte få till denna rad.

comm.Parameters.Add(new SqlParameter("@CustomerNumber", SqlDbType.BigInt)).Value = Convert.ToInt64(TextBoxCustomerNumber.Text);

I databasen är det en bigint som sedan hämtas från ett textfält.
Får bara följande felmeddelande

"Input string was not in a correct format" Detta är en paranmeter som ska sättas, oftast är den tom.

Men sätter jag in ett värde så fungerar koden perfekt.

Hoppas på snabbt svar.

// B3rra

b3rraMedlem sedan juli 2004103 inlägg
#2

Osnygg lösning

Löste det genom att låta den vara en varchar och lägga in den som en sträng i SPn.

Mvh B3rra

GladhMedlem sedan maj 20012 812 inlägg
#3

b3rra skrev:

I databasen är det en bigint som sedan hämtas från ett textfält.
Får bara följande felmeddelande

"Input string was not in a correct format" Detta är en paranmeter som ska sättas, oftast är den tom.

Men sätter jag in ett värde så fungerar koden perfekt.

Convert.ToInt64() Kräver att du skickar in ett värde som kan omvandlas till ett tal annars får du det felet. En bättre lösning hade varit att använd Int64.TryParse() som returnerar true/false om convertering från sträng till tal lyckades och därefter sätta värdet till din parameter.

b3rra skrev:

Löste det genom att låta den vara en varchar och lägga in den som en sträng i SPn.

Det är ingen bra lösning att lägga in något som en text om det är tänkt att vara en Int64, speciellt inte om det är ett ID på en kund, eftersom du säkert vill kunna använda dig av detta ID för att göra Inner Joins i databasen mellan olika tabeller, då måste det vara samma typ annars så kan du inte göra det.

- M

256 ms totalt · 3 externa anrop · v20260731065814-full.30151723
126 ms — hämta forumlista (db)
120 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)