2017-10-18 1 views
0

J'utilise rasoir C# sans MVC. J'utilise des données de SQL pour faire des calculs à la volée. Ce que je veux faire est de stocker les résultats dans un tableau afin que je puisse additionner le total plus tard.Stockage des résultats de calculs dans un tableau C#

conn.SQL = .... 

     //set up connection 
     SqlConnection connect = new SqlConnection(...); 
     connect.Open(); 

     //create the data reader 
     SqlCommand cmd = new SqlCommand(....., connect); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     cmd.Dispose(); 


     while (dr.Read()) 
     { 


      foo = 0 
      bar = 0; 

      //get local variables from database 

      foo = Math.Round(Convert.ToDouble(dr["foo"]), 2); 

      bar = Math.Round(Convert.ToDouble(dr["bar"]), 2); 

      foo = var - foo2 - foo3; 
try 
      { 
       if ((foo/var) >= .5) 
       { 
        if (foo <= 0.00) 
        { 
         bar = 0.00; 
         bar = var * .5; 
        } 

        else 
        { 
         MyVar = bar * .7 - foo;//This is the calculation done on the fly. 
         foo = bar * .5; 
         // MyVar_array = [];// This is the array I want to store the results to summed later on 
        } 

       } 

      } 
      catch (Exception e) 
      { 

      } 

Ce sont les calculs alors je les affiche dans une table @ foo.ToString (« C »)

correctement les affichages de données et les calculs sont corrects> Le problème est que je suis en train pour obtenir un total de cette colonne. En essayant de nous un tableau je et obtenir une variété d'erreurs à partir de cela n'existe pas dans le contexte actuel. Après quoi, je vais déclarer en haut de mon code, je recevrai une erreur disant que je peux utiliser cette variable dans ce cadre.

+1

Quelle est votre question? –

+0

Mon ami, vous n'avez toujours pas posé de question. Qu'est-ce qui vous donne des difficultés? Ne savez-vous pas comment déclarer le tableau? Comment le mettre à jour? Comment afficher son contenu? Votre exemple ne contient aucune boucle, SQL ou HTML, donc je n'ai aucune idée d'où vous rencontrez des problèmes ou comment le code dans votre exemple s'applique au problème. –

Répondre

0

Vous ne savez pas exactement ce que vous essayez de faire mais c'est comme cela que vous stockez quelque chose dans un tableau.

decimal[] MyVar_array = new decimal[1]; 
MyVar_array[0] = new decimal(0.123); 
//access the first item in the array like this 
Debug.Print(MyVar_array[0].ToString()); 

Je pense vraiment que vous voulez vous pencher sur l'utilisation des classes. Il sera plus difficile de gérer cet élément [0] qui correspond à la variable que vous lui définissez. Plus avec un tableau, vous devez maintenant à quel point il sera grand lors de sa création. Traiter avec des objets est beaucoup plus facile. Quelque chose comme ça

public class MyStuff 
{ 
    public decimal MyVar 
    { 
     get;set; 
    } 
} 

Utilisez comme ça

static void Main(string[] args) 
    { 
     MyStuff myData = new MyStuff(); 
     myData.MyVar = new decimal(0.123); 
     Debug.Print(myData.MyVar.ToString()); 
     Debug.Print(""); 
    } 

Il est beaucoup plus facile de travailler avec des objets pour gérer et organiser vos données.

+0

J'essaye d'additionner les données dans une colonne. Les nombres que j'essaie de stocker sont des résultats de calculs effectués à partir de données provenant de MS SQL. Depuis que j'utilise Razor sans MVC l'affichage est un tableau HTML @ bar.ToString ("C"). J'ai une boucle for qui traverse et donne la taille de la table mais parce que les calculs sont faits à la volée, j'ai de la difficulté à additionner ces chiffres. –

0

vous pouvez utiliser la liste et il est beaucoup plus facile

List<decimal> x = new List<decimal>(); 

try 
{ 
    if ((foo/var) >= .5) 
    { 
     if (foo <= 0.00) 
     { 
      bar = 0.00; 
      bar = var * .5; 
     } 

     else 
     { 
      MyVar = bar * .7 - foo;//This is the calculation done on the fly. 
      foo = bar * .5; 
      // MyVar_array = [];// This is the array I want to store the results to summed later on 
     } 

    } 
    //x.Add(foo); im not sure which is you are storing 
    x.Add(bar); 

} 
catch (Exception e) 
{ 

} 

alors vous pouvez appeler chaque index comme des tableaux

decimal firstvalue = x[0]; 
decimal secondvalue = x[1];