1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| public void insertLine(double x, double y)
{
try
{
OleDbCommand maCommande = new OleDbCommand();
maCommande.Connection = maConnexion;
// déclaration des variables
double nextX = 0.0, nextY = 0.0;
double X = 0.0, Y = 0.0;
double lastX = 0.0, lastY = 0.0;
double d1 = 0.0, d2 = 0.0;
//ouverture de la connexion et requête SQL
maConnexion.Open();
maCommande.CommandText = "SELECT X, Y FROM Axe";
maCommande.Connection = maConnexion;
int count = maCommande.ExecuteNonQuery();
OleDbDataReader monReader = maCommande.ExecuteReader();
//Lecture du Reader
if (monReader.Read())
{
//Initialisation des variables pour la première condition de la boucle while
X = monReader.GetDouble(0);
Y = monReader.GetDouble(1);
monReader.NextResult();
nextX = monReader.GetDouble(0);
nextY = monReader.GetDouble(1);
//Tant que cette condition, mise à jour des variables pour retenir à la fin les valeurs qui m'intéresse
while (X*Y > nextX*nextY)
{
lastX = X;
lastY =Y;
X = nextX;
Y = nextY;
monReader.NextResult();
nextX = monReader.GetDouble(0);
nextY = monReader.GetDouble(1);
}
//ici je souhaite utiliser les variables X, Y, lastX, lastY, nextX et nextY mais impossible puisque sorties de la boucle while ils ne sont plus reconnus
d1 = Math.Sqrt(pow((X-lastX),2)+pow((Y-lastY),2)));
d2 = Math.Sqrt(pow((nextX-X),2)+pow((nextY-Y),2)));
//Stockage de ces 2 valeurs (d1 et d2) dans une autre table
OleDbCommand maCommande2 = new OleDbCommand();
maCommande2.Connection = maConnexion;
maCommande2.CommandText = "INSERT INTO Points (X, Y, Distance1, Distance2) VALUES (@x, @y, @d1, @d2 );";
maCommande2.Parameters.Add(new OleDbParameter("@x", x));
maCommande2.Parameters.Add(new OleDbParameter("@y", y));
maCommande2.Parameters.Add(new OleDbParameter("@d1", d1));
maCommande2.Parameters.Add(new OleDbParameter("@d2", d2));
OleDbDataReader monReader2 = maCommande2.ExecuteReader();
textBox_Info.Text = "Points enregistré\r\n";
}
} |
Partager