Wie kann ich umwandeln int in ein double?

Ich habe Schwierigkeiten, meine Umwandlung int-Werte verdoppelt. Ich weiß, ich habe Sie gewirkt, und ich bin versucht, das zu tun; aber C# noch gibt mir eine Fehlermeldung, für die Umwandlung von int in double und sagt, brauche ich einen cast. Auch Es gibt mir eine Fehlermeldung bei dem Versuch erhalten Sie den Wert für totalunits unter Werte. er sagt: "**Eine lokale variable mit dem Namen 'Werte'cannot deklariert werden, in diesem Umfang, weil es geben würde, eine andere Bedeutung für "Werte", die bereits in einer übergeordneten oder aktuellen Bereich zu bezeichnen, einige andere auch. Im verwirrt über diesen Fehler, weil ich will, totalunits um die Werte zu ändern, wie gut. Kann somweone mir helfen? Danke.

Justin

Hier ist mein code:

//Get the Refurb_Rate for the day


private double GetRefurbRate()
{
    string sql = "";
    double Refurb_Rate = 0;
    int totalRefurb = 0;
    int totalUnits = 0;
    string error_msg = "";

        //Getting the value for sql for totalRefurb
        sql = "SELECT COUNT(distinct rp.repair_ord) " +
           "FROM " + schema + ".repair_part rp " +
           "WHERE rp.repair_type = 'REFURB' and rp.created_date > '" + DateTime.Now.ToString("d-MMM-yyyy") + "' ";


        while (true)
        {
            if (!myDb.RunSql(sql, true))
            {
                error_msg = "DBError for getting Refurb Rate";
                break;
            }
            if (myDb.dbRdr.HasRows)
            {
                if (myDb.dbRdr.Read())
                {


                    object[] values = new object[myDb.dbRdr.FieldCount];
                    myDb.dbRdr.GetValues(values);
                    Console.WriteLine(values[0].ToString());
                    totalRefurb = Convert.ToDouble(values[0].ToString());());//This is where convert to double error comes in.


                    //Getting the value from sql for totalUnits
                    sql = "SELECT count(distinct rp.repair_ord) " +
                        "FROM " + schema + ".repair_part rp " +
                        "WHERE rp.repair_type = 'REFURB' and rp.ref_desig is null  and rp.created_date > '" + DateTime.Now.ToString("d-MMM-yyyy") + "' ";

                    while (true)
                    {
                        if (!myDb.RunSql(sql, true))
                        {
                            error_msg = "DBError for getting Refurb Rate";
                            break;
                        }
                        if (myDb.dbRdr.HasRows)
                        {
                            if (myDb.dbRdr.Read())
                            {

                                //This is where the values error comes in
                                object[] values = new object[myDb.dbRdr.FieldCount];
                                myDb.dbRdr.GetValues(values);
                                Console.WriteLine(values[1].ToString());
                                totalUnits = Convert.ToDouble(values[1].ToString());//This is where convert to double error comes in.

                                try
                                {

                                    //Formula for Refurb Rate
                                    Refurb_Rate = totalRefurb / totalUnits * 100;


                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine(e);
                                }

                            }

                        }

                        break;
                    }
                    myDb.dbRdr.Close();

                    if (error_msg != String.Empty)
                    {
                        MessageBox.Show(error_msg, "Get Refurb Rate",
                                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    }

                    return Refurb_Rate;
                }
            }
        }
    }
Dies ist ein schreckliches Stück code, weil es einfach so viel Schachteln. Brechen Sie die Logik in verschiedene Methoden, wie verwenden Sie niemals while (true) und diejenigen loswerden, die Verschachtelung if's!
Abgesehen von der syntax-Fehler, den Sie sehen, diese Methode ist betteln für einige Umgestaltung.
while(true) ist manchmal ein nützliches Konstrukt. In diesem, aber es ist da, um alle die break Aussagen in gotos. Gotos sind schlecht, ob Sie nun ausdrücklich oder nicht. (Von "gotos", ich meine natürlich "unstrukturierte fließt der Ausführung".) @gaearon ist Recht, das ist schrecklich.
parametrisierte sql Mann!

InformationsquelleAutor Justin | 2011-04-13

Schreibe einen Kommentar