Bonjour,

J'ai une table avec laquelle je remplis un dictionnaire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach (DataRow row in myLocalDataTable.Rows)
                {
                    Dictionary<String, Object> parameterList = new Dictionary<String, Object>(); 
                    parameterList["idsResultSessionLap"] = row["idsResultSessionLap"];
                    parameterList["idsResultSession"] = row["tblResultSessionLap.idsResultSession"];
                    parameterList["lngCycle"] = row["lngCycle"];
                    parameterList["lngLapNumber"] = row["lngLapNumber"];
                    parameterList["dtmTestEnd"] = row["dtmTestEnd"];
                    parameterList["blnECEnable"] = row["blnECEnable"];
                    parameterList["strECMode"] = row["strECMode"];
                    parameterList["dblECTemperature"] = row["dblECTemperature"];
                    parameterList["intECSegment"] = row["intECSegment"];
                    parameterList["blnAllTest"] = row["blnAllTest"];
                    parameterList["blnSuccess"] = row["blnSuccess"];
                    parameterList["blnNewLapTranfered"] = row["blnNewLapTranfered"];
                    parameterList["blnReadyToTransfer"] = row["blnReadyToTransfer"];
puis, j'insere certains enregistrements:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
String queryResultSessionLap = "INSERT INTO ResultSessionLap ";
                queryResultSessionLap += " (idsResultSession, lngCycle, lngLapNumber, dtmTestStart, dtmTestEnd, blnECEnable, strECMode, dblECTemperature, intECSegment, blnAllTest, ";
                queryResultSessionLap += " blnSuccess) ";
                queryResultSessionLap += " VALUES (" + iParameterList["idsResultSession"] + "," + iParameterList["lngCycle"] + ",";
                queryResultSessionLap += iParameterList["lngLapNumber"] + ", CONVERT(DATETIME, " + iParameterList["dtmTestStart"] + ")," + ", CONVERT(DATETIME, " + iParameterList["dtmTestEnd"] + "),";
                queryResultSessionLap += iParameterList["blnECEnable"] + ", CONVERT(NVARCHAR(255), " + iParameterList["strECMode"] + ")," + iParameterList["dblECTemperature"] + ",";
                queryResultSessionLap += iParameterList["intECSegment"] + ", CONVERT(BIT, " + iParameterList["blnAllTest"] + ")," + " CONVERT(BIT, " + iParameterList["blnSuccess"] + "))";
 
  SqlConnection myConnection = null;
            try
            {
                String connectionString = @"Data Source=SRVSQL2\DEV;Initial Catalog=ATE_Results;User ID=sa;Password=sadevpass";
                myConnection = new SqlConnection(connectionString);
                SqlCommand myCommand = new SqlCommand(iQuery, myConnection);
                myConnection.Open();
                myCommand.ExecuteNonQuery();
 
 
            }
            catch (Exception e)
            {
                Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message);
            }
 
            finally
            {
                myConnection.Close();
            }

Mon probleme est le suivant: bien souvent, des valeures du dictionnaire sont vides et ma requete lancée au serveur ne passe pas. La chaine de caractere qui est passée est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO ResultSessionLap  (idsResultSession, lngCycle, lngLapNumber, dtmTestStart, dtmTestEnd, blnECEnable, strECMode, dblECTemperature, intECSegment, blnAllTest,  blnSuccess)  VALUES (30,1,20, CONVERT(DATETIME, 2011-07-06 09:57:49),, CONVERT(DATETIME, ),False, CONVERT(NVARCHAR(255),),,, CONVERT(BIT, True), CONVERT(BIT, False))
On voit bien qu'il manque certaines valeures. De quelle façon puis-je modifier l'initialisation du dictionnaire pour que la requête fonctionne?

J'obtiens l'exception suivante : {"Incorrect syntax near '09'."}

merci