public void TestAsyncDataSet() { string sql = @" SELECT 3 AS id SELECT 4 as id, 'toto' as name "; DataSet dst = null; using (ConnectionParam cnn = new ConnectionParam(myconnectionString, timeOut: 200)) { dst = Task.Run(() => cnn.ExecuteDataSetAsync(sql)).Result; } Assert.IsNotNull(dst, "Resultat ExecuteDataSetAsync ?"); Assert.AreEqual(dst.Tables.Count, 2, "Resultat ExecuteDataSetAsync Nombre de table KO"); Assert.AreEqual(dst.Tables[0].Rows.Count, 1, "Resultat ExecuteDataSetAsync T[0] nbRows KO"); int n = SqlConvert.To(dst.Tables[0].Rows[0], "id", 0); Assert.AreEqual(n, 3, "Resultat ExecuteDataSetAsync Table[0].Rows[0][id] == 3 KO"); Assert.AreEqual(dst.Tables[1].Rows.Count, 1, "Resultat ExecuteDataSetAsync T[1] nbRows KO"); n = SqlConvert.To(dst.Tables[1].Rows[0], "id", 0); Assert.AreEqual(n, 4, "Resultat ExecuteDataSetAsync Table[1].Rows[0][id] == 4 KO"); string nom = SqlConvert.To(dst.Tables[1].Rows[0], "name", string.Empty); Assert.AreEqual(nom, "toto", "Resultat ExecuteDataSetAsync Table[1].Rows[0][name] == toto KO"); }
private async Task ProcessingDataSet() { this.Start(); string sql = @" DECLARE @i int = 0; DECLARE @msg VARCHAR(50); WHILE @i < 1000000 BEGIN SET @msg = 'i = '+ Convert(VARCHAR(10), @i); IF ((@i % 100 ) = 0) RAISERROR (@msg, 10, 0); SET @i = @i+1; END ; SELECT TOP 10 t.object_id, t.name FROM sys.tables t ; SELECT TOp 20 c.object_id, c.name, c.column_id FROm sys.columns c ;"; DataSet dst = null; using (ConnectionParam cnn = new ConnectionParam(ConnectionString)) { dst = await cnn.ExecuteDataSetAsync(sql); } this.Stop(dst); }