Cristina
Cristina

Reputation: 133

Cannot implicitly convert type 'string' to 'decimal'

private void button18_Click(object sender, EventArgs e)
    {
        Form1 stForm = new Form1();
        DialogResult result = stForm.ShowDialog(this);

        if (result == DialogResult.Cancel)
            return;
        Inscrierea__pentru_burs_sau_contract media = new Inscrierea__pentru_burs_sau_contract();
        media.Media_MNDP = stForm.MNDP.Text;
        media.Media_MNEA = stForm.MNEA.Text;
        media.Media_Concurs = stForm.MediaConcurs.Text;

        db.Media.Add(media);
        db.SaveChanges();
        MessageBox.Show("Salvarea a avut loc cu succes!!!");
    }

Please help me with my error at line with:

  1. media.Media_MNDP = stForm.MNDP.Text;
  2. media.Media_MNEA = stForm.MNEA.Text;
  3. media.Media_Concurs = stForm.MediaConcurs.Text;

error" Cannot implicitly convert type 'string' to 'decimal'"

Upvotes: 6

Views: 16798

Answers (3)

Pranay Rana
Pranay Rana

Reputation: 176956

make use of Decimal.TryParse(string, out val)

Example :

decimal val;
if(Decimal.TryParse(stForm.MNDP.Text, out val))
    media.Media_MNDP = val;

better to use tryparse method because it avoid runtime exception to be thrown

Upvotes: 7

anhtv13
anhtv13

Reputation: 1818

Add try-catch when use Parse

try{
media.Media_MNDP = Decimal.Parse(stForm.MNDP.Text);
media.Media_MNEA = Decimal.Parse(stForm.MNEA.Text);
media.Media_Concurs = Decimal.Parse(stForm.MediaConcurs.Text);
}
catch(Exception ex){
}

Upvotes: 1

Anik Islam Abhi
Anik Islam Abhi

Reputation: 25352

Try like this

 media.Media_MNDP = Decimal.Parse(stForm.MNDP.Text);

For emtpy textbox that will throw error .

To make error free try this

decimal demo;

if(Decimal.TryParse(stForm.MNDP.Text,out demo)){
  media.Media_MNDP = Decimal.Parse(stForm.MNDP.Text);
}

Upvotes: 2

Related Questions