Avatar billede uc Nybegynder
27. juli 2005 - 09:17 Der er 20 kommentarer og
1 løsning

System.Convert.ToInt32.Parse()

Hej Eksperter

Jeg har en DDL med nogle værdier 1 og 1,5
men jeg kan ikke smide dem i min Access DB hvor
feltet er oprettet som TAL (Reelt tal)

jeg bruger denne
int antal = System.Convert.ToInt32.Parse(DDL_antal.SelectedItem.Value);

men får en fejl.


Compiler Error Message: CS0119: 'System.Convert.ToInt32(object)' denotes a 'method' which is not valid

Hvordan laver man det bedst.? fikser fejlen.?
altså overfør en komma Value fra DDL til Access DB.

Rune
Avatar billede arne_v Ekspert
27. juli 2005 - 09:21 #1
int antal = System.Convert.ToInt32(DDL_antal.SelectedItem.Value);

eller

int antal = int.Parse(DDL_antal.SelectedItem.Value);
Avatar billede uc Nybegynder
27. juli 2005 - 09:27 #2
Hej arne_v

int antal = System.Convert.ToInt32(DDL_antal.SelectedItem.Value);
det har jeg prøvet.
fejl = Input string was not in a correct format.
og
int antal = int.Parse(DDL_antal.SelectedItem.Value);
Compiler Error Message: CS0117: 'int' does not contain a definition for 'ParseDDL_antal'


skal value være komma eller punktum. f.eks 1,5 eller 1.5 ?

Rune
Avatar billede uc Nybegynder
27. juli 2005 - 09:29 #3
oops

int antal = int.Parse(DDL_antal.SelectedItem.Value);
laver denne fejl.
Exception Details: System.FormatException: Input string was not in a correct format

Rune
Avatar billede jokkejensen Novice
27. juli 2005 - 09:29 #4
integers kan ikke have "komma" tal :)
Avatar billede arne_v Ekspert
27. juli 2005 - 09:49 #5
jep

1 og 2

eller

Convert.ToDouble / double.Parse

vil nok løse det problem
Avatar billede uc Nybegynder
27. juli 2005 - 10:02 #6
Hej

Hvis jeg bruger
double antal = double.Parse(DDL_antal.SelectedItem.Value);
eller
double antal = System.Convert.double(DDL_antal.SelectedItem.Value);

så før jeg ingen fejl.
men Value 1.5 bliver til 15
??
Hvis jeg ændre Value til 1,5 (komma)
så får jeg en fejl. System.FormatException: Input string was not in a correct format

hvis manuelt indtaster en værdi i DB skal det være 1,5 (komma) og ikke 1.5
som den Value jeg har...
Jeg fatter ikke en skid mere, trænger vist til ferie. :-(
Rune
Avatar billede arne_v Ekspert
27. juli 2005 - 10:05 #7
må vi se lidt mere kode ?
Avatar billede uc Nybegynder
27. juli 2005 - 10:18 #8
Min DDL ser sådan her ud.

<asp:DropDownList id="DDL_antal" runat="server">
                <asp:ListItem Value="O.5">O.5</asp:ListItem>
                <asp:ListItem Value="1" Selected="True">1</asp:ListItem>
                <asp:ListItem Value="1.5">1.5</asp:ListItem>
</asp:DropDownList>

Så har jeg bare en en Knap, event der opsamler de ting man har valgt eller
skrevet og gemmer det i en DB.

void Button1_Click(object sender, EventArgs e) {


          string id_install = Request.QueryString["id"];
          string id_item = DDL_item.SelectedItem.Value;
          string mytext = TB_mytext.Text;
          double antal = Convert.ToDouble(DDL_antal.SelectedItem.Value);
       

        string sql_add_item = String.Format("INSERT INTO used_item (id_install, id_item, mytext, antal) Values('{0}', '{1}', '{2}',{3});", id_install, id_item, mytext, antal);

OleDbConnection dbConn5 = new OleDbConnection(Application["strConnect_data"].ToString());
          OleDbCommand command = new OleDbCommand(sql_add_item, dbConn5);
          dbConn5.Open();
          command.ExecuteNonQuery();
          dbConn5.Close();
}
Avatar billede arne_v Ekspert
27. juli 2005 - 10:21 #9
et vildt gæt ville være at ASP.NET forventer , mens databasen forventer . og
at du derfor for problemer uanset hvad
Avatar billede arne_v Ekspert
27. juli 2005 - 10:22 #10
<asp:ListItem Value="O.5">O.5</asp:ListItem>

ligne iøvrigt bogstavet O og ikke tallet 0
Avatar billede arne_v Ekspert
27. juli 2005 - 10:22 #11
prøv at:

- bruge .
- angive engelsk parse
Avatar billede arne_v Ekspert
27. juli 2005 - 10:24 #12
double antal = double.Parse(DDL_antal.SelectedItem.Value, new CultureInfo("en-US", false));
Avatar billede arne_v Ekspert
27. juli 2005 - 10:24 #13
hvordan kan et antal iøvrigt være et decimal tal ?
Avatar billede uc Nybegynder
27. juli 2005 - 10:25 #14
arne_v
engelsk parse ?
Avatar billede arne_v Ekspert
27. juli 2005 - 10:26 #15
10:24:13
Avatar billede uc Nybegynder
27. juli 2005 - 10:35 #16
anre_v

Hvis jeg bruger denne (som jeg ikke kender)
double antal = double.Parse(DDL_antal.SelectedItem.Value, new CultureInfo("en-US", false));
får jeg denne fejl.?

System.Data.OleDb.OleDbException: Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.


Rune
Avatar billede arne_v Ekspert
27. juli 2005 - 11:14 #17
den fejl relaterer sig jo ikke til Parse men til SQL INSERT
Avatar billede arne_v Ekspert
27. juli 2005 - 11:16 #18
men prøv så:

string sql_add_item = String.Format(new CultureInfo("en-US", false), "INSERT INTO used_item (id_install, id_item, mytext, antal) Values('{0}', '{1}', '{2}',{3});", id_install, id_item, mytext, antal);
Avatar billede uc Nybegynder
27. juli 2005 - 11:25 #19
arne_v

dit forslag virker.? Men kender ikke lige den formatering du har lavet.?

det her virker også ?
string sql_add_item = String.Format("INSERT INTO used_item (id_install, id_item, mytext, antal) Values('{0}', '{1}', '{2}','{3}');", id_install, id_item, mytext, antal);


Læg mærke til Value '{3}' skal ikke være {3}

1000 tak for hjælpen . smid et svar og du får point.

Rune :-)
Avatar billede arne_v Ekspert
27. juli 2005 - 11:48 #20
Jeg angiver at String.Format skal bruge . og ikke , !

Du bruger MySQL ? (det er så vidt jeg ved den eneste database som accepterer tal i '')

Og svar.
Avatar billede arne_v Ekspert
27. juli 2005 - 11:49 #21
om igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester