webForumDet fria alternativet

Problem med en class i webservice

3 svar · 324 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag försöker att få ihop en liten smidig class men det skiter sig.
Min class

 public static decimal OleDbCount(string sql, OleDbConnection DBConn)
    {
        decimal sText = 0;
        try
        {
            OleDbCommand OleDbCmd = new OleDbCommand();
            OleDbCmd.CommandText = sql;
            OleDbCmd.Connection = DBConn;

            DBConn.Open();
            sText = (int)OleDbCmd.ExecuteScalar();
            return sText;
        }
        catch { }
        finally { DBConn.Close(); }
        return sText; 
    }
}
//detta fungerar jag skickar alltså in en sql här
 public decimal  CountSQL(string sql)
    {//string strSQL = "select count(*) from Produkter ";
        decimal sText = 0;
        try
        {
            sText = (decimal)WebbUtill.OleDbCount(sql, DBConn);

            return sText;
        }
        catch{  }
        
        return sText;
    }
//detta fungerar inte jag kommer till en sida som inte visar någonting
public decimal HowMuchWillItCost(string productName, int howMany)
    {
        try
        {
            if (howMany > 0)
            {                string sql = "Select Enhetspris FROM Produkter WHERE 
Produktnamn = '" + productName + "'";
                decimal price = (decimal)WebbUtill.OleDbCount(sql, DBConn);

                return price * howMany;
            
            }
            else
            {
                throw new Exception("\n" + " howMany cant bee negative.");

            }
        }
        catch (Exception e)
        {
            throw new Exception("Error calculating cost: " + e.Message);
        }
        decimal varde = 0;
        return varde;
    }

Någon som kan se felet???

emissionMedlem sedan dec. 19996 721 inlägg
#2

Du skriver att det är en webservice, men jag kan inte att något är definierat som WebMethod..

Var kommer databaskopplingen ifrån?

Att du skapar en sql-sats med konkatenering, och inte med parametrar, föranleder en vänlig men mycket bestämd rundspark.

sawMedlem sedan mars 20011 880 inlägg
#3

emission
Jag tog inte med [WebMethod(CacheDuration = 0,
Description="Hur mycket kostar varorna?")]
eller databaskopplingen, kanske fel men det fungerar.
Att jag har en sql-sats är bara tillfäligt det skall bli agrument.
Det jag undrar över är varför den ena classen fungerar men inte den andra.

sawMedlem sedan mars 20011 880 inlägg
#4

Jag har hittat felet

sText = (decimal)OleDbCmd.ExecuteScalar();

Jag hadde råkat skriva int där tidigare.
Jag har också ändrat ifrån sql till parameter.
Tack för hjälp.

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)