Erreur dans mon code apres conversion

Pemco - 2 janv. 2013 à 15:50
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 - 3 janv. 2013 à 09:50
Bonjour chers amis,je veux traduire mon code vb en c#
quand j'utilise les liens de conversion je n'ai pas le resultat escompté.
Prière de me donner un coup de main
Dim X1, X2, B20 As String
            Dim Mavariable As String = ""
            'Connexion à la base de données


            Dim Mochamp As XPathNavigator = Me.MainDataSource.CreateNavigator()
            Dim Pem24 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:Zone", Me.NamespaceManager)
            'Dim Pem25 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1", Me.NamespaceManager)
            'Dim pem26 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2", Me.NamespaceManager)
            Dim pem27 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2/my:Unite", Me.NamespaceManager)

            'Dim pem27 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1", Me.NamespaceManager)
            'Dim Pem102 As XPathNavigator = Mochamp.SetValue("/my:mesChamps/my:Num_demande")
            B20 = Pem24.Value
            Dim Tito, Titou As String
            Dim TConnection As New SqlConnection
            Dim TCommand, TCommand1, TCommand2 As SqlCommand
            Dim TReader, TReader1, TReader2 As SqlDataReader
            TConnection.ConnectionString = "Data Source=PEMCODEV\SQLEXPRESS;Initial Catalog=GESTETUDE;Integrated Security = true"
            Dim cas As String = ""
            'recuperation des champs
            Dim B25, B26, B27 As String
            'B25 = Pem25.Value
            'B26 = pem26.Value
            B27 = pem27.Value
            ' Retrieve a reference to the Main DOM
            Dim root As XPathNavigator = MainDataSource.CreateNavigator()

            ' Count the amount of group2 nodes
            Dim iter As XPathNodeIterator = root.Select( _
            "/my:mesChamps/my:groupe1/my:groupe2/my:Structure1", _
            NamespaceManager)
            Dim group2NodesCount As Integer = iter.Count
            Dim X3 As Integer = 0
            X3 = iter.Count
            ' Retrieve the first group2 node
            Dim firstGroup2NodeNav As XPathNavigator = _
            root.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2[1]", _
            NamespaceManager)

            ' Retrieve the last group2 node
            Dim lastGroup2NodeNav As XPathNavigator = _
            root.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2[" & _
            group2NodesCount.ToString() & "]", _
            NamespaceManager)
            If B20 "LABORATOIRE" Then cas "LAB"
            If X3 >= 2 Then
                cas = "RAF"
            Else
                cas = Right(B27, 2)
            End If

            'Ouverture de la connexion à la base de données
            Tito = "SELECT Code_compteur,Annee,Variable_compteur FROM COMPTEUR WHERE Variable_compteur='" & cas & "'"
            TConnection.Open()
            TCommand = New SqlCommand(Tito, TConnection)
            TReader = TCommand.ExecuteReader()
            TReader.Read()
            If TReader.HasRows() = False Then
                Titou = "INSERT INTO COMPTEUR (Code_compteur,Annee,Variable_compteur) VALUES('01','" & Date.Now.Year & "' ,'" & cas & "')"
                TReader.Close()
                TCommand1 = New SqlCommand(Titou, TConnection)
                TReader1 = TCommand1.ExecuteReader()
                Mavariable = Right(Date.Now.Year, 2) & "-" & cas & "-" & "01"
                TReader1.Close()
            Else
                X1 = TReader.GetValue(0)
                X2 = TReader.GetValue(1)
                TReader.Close()

                If X2 < Date.Now.Year Then
                    X1 = "01"
                    X2 = Date.Now.Year
                Else
                    If X2 = Date.Now.Year Then
                        X1 = CDbl(X1) + 1
                        If Len(X1) 1 Then X1 "0" + X1
                    Else
                        'Affichage du message d'info à l'utilisateur
                        MessageBox.Show("Veuillez verifier  la date?")
                    End If

                End If

                Dim Mito As String

                'Modifier les valeurs dans la table
                Mito "  UPDATE COMPTEUR SET Code_compteur '" & X1 & "',Annee='" & X2 & "',Variable_compteur='" & cas & "'  WHERE Variable_compteur='" & cas & "'"
                TCommand2 = New SqlCommand(Mito, TConnection)
                TReader2 = TCommand2.ExecuteReader()
                TReader2.Read()
                TReader2.Close()
            End If
            'TReader.Close()
            'TReader1.Close()
            If B20 = "LABORATOIRE" Then
                '    'Affectation des données dans la variable
                Mavariable = Right(X2, 2) & "-" & cas & "-" & X1
            Else
                If X3 >= 2 Then
                    Mavariable = Right(X2, 2) & "-" & cas & "-" & X1
                Else
                    Mavariable = Right(X2, 2) & "-" & cas & "-" & X1
                End If
            End If

            Dim myNav As XPathNavigator = Me.MainDataSource.CreateNavigator()
            'affectation des champs du Numero de la demande....
            myNav.SelectSingleNode("/my:mesChamps/my:Num_demande", Me.NamespaceManager). _
                        SetValue(Mavariable)
            'Fermeture de la connection
            TConnection.Close()

Voici le code de traduction en c#
string X1 = null;
string X2 = null;
string B20 = null;
string Mavariable = "";
//Connexion à la base de données


XPathNavigator Mochamp = this.MainDataSource.CreateNavigator();
XPathNavigator Pem24 = Mochamp.SelectSingleNode("/my:mesChamps/my:Zone", this.NamespaceManager);
//Dim Pem25 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1", Me.NamespaceManager)
//Dim pem26 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2", Me.NamespaceManager)
XPathNavigator pem27 = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2/my:Unite", this.NamespaceManager);

//Dim pem27 As XPathNavigator = Mochamp.SelectSingleNode("/my:mesChamps/my:groupe1", Me.NamespaceManager)
//Dim Pem102 As XPathNavigator = Mochamp.SetValue("/my:mesChamps/my:Num_demande")
B20 = Pem24.Value;
string Tito = null;
string Titou = null;
SqlConnection TConnection = new SqlConnection();
SqlCommand TCommand = default(SqlCommand);
SqlCommand TCommand1 = default(SqlCommand);
SqlCommand TCommand2 = default(SqlCommand);
SqlDataReader TReader = default(SqlDataReader);
SqlDataReader TReader1 = default(SqlDataReader);
SqlDataReader TReader2 = default(SqlDataReader);
TConnection.ConnectionString = "Data Source=PEMCODEV\\SQLEXPRESS;Initial Catalog=GESTETUDE;Integrated Security = true";
string cas = "";
//recuperation des champs
string B25 = null;
string B26 = null;
string B27 = null;
//B25 = Pem25.Value
//B26 = pem26.Value
B27 = pem27.Value;
// Retrieve a reference to the Main DOM
XPathNavigator root = MainDataSource.CreateNavigator();

// Count the amount of group2 nodes
XPathNodeIterator iter = root.Select("/my:mesChamps/my:groupe1/my:groupe2/my:Structure1", NamespaceManager);
int group2NodesCount = iter.Count;
int X3 = 0;
X3 = iter.Count;
// Retrieve the first group2 node
XPathNavigator firstGroup2NodeNav = root.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2[1]", NamespaceManager);

// Retrieve the last group2 node
XPathNavigator lastGroup2NodeNav = root.SelectSingleNode("/my:mesChamps/my:groupe1/my:groupe2[" + group2NodesCount.ToString() + "]", NamespaceManager);
if (B20 == "LABORATOIRE")
cas = "LAB";
if (X3 >= 2) {
cas = "RAF";
} else {
cas = Strings.Right(B27, 2);
}

//Ouverture de la connexion à la base de données
Tito = "SELECT Code_compteur,Annee,Variable_compteur FROM COMPTEUR WHERE Variable_compteur='" + cas + "'";
TConnection.Open();
TCommand = new SqlCommand(Tito, TConnection);
TReader = TCommand.ExecuteReader();
TReader.Read();
if (TReader.HasRows() == false) {
Titou = "INSERT INTO COMPTEUR (Code_compteur,Annee,Variable_compteur) VALUES('01','" + System.DateTime.Now.Year + "' ,'" + cas + "')";
TReader.Close();
TCommand1 = new SqlCommand(Titou, TConnection);
TReader1 = TCommand1.ExecuteReader();
Mavariable = Strings.Right(System.DateTime.Now.Year, 2) + "-" + cas + "-" + "01";
TReader1.Close();
} else {
X1 = TReader.GetValue(0);
X2 = TReader.GetValue(1);
TReader.Close();

if (X2 < System.DateTime.Now.Year) {
X1 = "01";
X2 = System.DateTime.Now.Year;
} else {
if (X2 == System.DateTime.Now.Year) {
X1 = Convert.ToDouble(X1) + 1;
if (Strings.Len(X1) == 1)
X1 = "0" + X1;
} else {
//Affichage du message d'info à l'utilisateur
MessageBox.Show("Veuillez verifier  la date?");
}

}

string Mito = null;

//Modifier les valeurs dans la table
Mito "  UPDATE COMPTEUR SET Code_compteur '" + X1 + "',Annee='" + X2 + "',Variable_compteur='" + cas + "'  WHERE Variable_compteur='" + cas + "'";
TCommand2 = new SqlCommand(Mito, TConnection);
TReader2 = TCommand2.ExecuteReader();
TReader2.Read();
TReader2.Close();
}
//TReader.Close()
//TReader1.Close()
if (B20 == "LABORATOIRE") {
//    'Affectation des données dans la variable
Mavariable = Strings.Right(X2, 2) + "-" + cas + "-" + X1;
} else {
if (X3 >= 2) {
Mavariable = Strings.Right(X2, 2) + "-" + cas + "-" + X1;
} else {
Mavariable = Strings.Right(X2, 2) + "-" + cas + "-" + X1;
}
}

XPathNavigator myNav = this.MainDataSource.CreateNavigator();
//affectation des champs du Numero de la demande....
myNav.SelectSingleNode("/my:mesChamps/my:Num_demande", this.NamespaceManager).SetValue(Mavariable);
//Fermeture de la connection
TConnection.Close();

1 réponse

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
3 janv. 2013 à 09:50
bonjour,
tu as fait la conversion de code à la main?
pour des conversions de ce type j'utilise l'outil qui est inclus dans Sharpdevelop.


louis
0
Rejoignez-nous