EndInit() public method

public EndInit ( ) : void
return void
Beispiel #1
1
		[Test] public void BeginInitTest ()
		{
			DataSet ds = new DataSet ();

			DataTable table1 = new DataTable ("table1");
			DataTable table2 = new DataTable ("table2");

			DataColumn col1 = new DataColumn ("col1", typeof (int));
			DataColumn col2 = new DataColumn ("col2", typeof (int));
			table1.Columns.Add (col1);
			table2.Columns.Add (col2);
			
			UniqueConstraint pkey = new UniqueConstraint ("pk", new string[] {"col1"}, true);
			ForeignKeyConstraint fkey = new ForeignKeyConstraint ("fk", "table1", new String[] {"col1"}, 
								new String[] {"col2"}, AcceptRejectRule.Cascade,
								Rule.Cascade, Rule.Cascade);
			DataRelation relation = new DataRelation ("rel", "table1", "table2", new String[] {"col1"},
								 new String[] {"col2"}, false);
			ds.BeginInit ();
			table1.BeginInit ();
			table2.BeginInit ();

			ds.Tables.AddRange (new DataTable[] {table1, table2});
			ds.Relations.AddRange (new DataRelation[] {relation});
			
			table1.Constraints.AddRange (new Constraint[] {pkey});
			table2.Constraints.AddRange (new Constraint[] {fkey});

			// The tables/relations shud not get added to the DataSet yet
			Assert.AreEqual (0, ds.Tables.Count, "#1");
			Assert.AreEqual (0, ds.Relations.Count, "#2");
			Assert.AreEqual (0, table1.Constraints.Count, "#3");
			Assert.AreEqual (0, table2.Constraints.Count, "#4");
			ds.EndInit ();

			Assert.AreEqual (2, ds.Tables.Count, "#5");
			Assert.AreEqual (1, ds.Relations.Count, "#6");
			Assert.AreEqual (1, ds.Tables [0].Constraints.Count, "#7");
			Assert.AreEqual (1, ds.Tables [1].Constraints.Count, "#8");

			// Table shud still be in BeginInit .. 
			DataColumn col3 = new DataColumn ("col2");
			UniqueConstraint uc = new UniqueConstraint ("uc", new string[] {"col2"}, false);

			table1.Columns.AddRange (new DataColumn[] {col3});
			table1.Constraints.AddRange (new Constraint[] {uc});

			Assert.AreEqual (1, table1.Columns.Count, "#9");
			Assert.AreEqual (1, table1.Constraints.Count, "#10");

			table1.EndInit ();
			Assert.AreEqual (2, table1.Columns.Count, "#11");
			Assert.AreEqual (2, table1.Columns.Count, "#12");
		}
        private DataTable BuildSampleTable()
        {
            var table = new DataTable();

            table.BeginInit();
            table.Columns.Add("COL-1", typeof(int));
            table.Columns.Add("COL-2");
            table.EndInit();

            table.BeginLoadData();
            for (var i = 0; i < 5; i++)
            {
                table.LoadDataRow(new object[] {i, (i + 1).ToString()}, true);
            }
            table.EndLoadData();

            return table;
        }
Beispiel #3
0
		public void BeginInit2 ()
		{
			DataTable table = new DataTable ("table");
			DataView dv = new DataView ();
			DataColumn col1 = new DataColumn ("col1");
			DataColumn col2 = new DataColumn ("col2");

			dvInitialized = false;

			dv.Initialized += new EventHandler (OnDataViewInitialized);
			
			dv.BeginInit ();
			table.BeginInit ();
			table.Columns.AddRange (new DataColumn[] {col1,col2});

			dv.Table = table;
			AssertNull ("#1", dv.Table);
			dv.EndInit ();
			
			AssertNull ("#2", dv.Table);
			AssertEquals ("#3", 0, table.Columns.Count);

			table.EndInit ();

			dv.Initialized -= new EventHandler (OnDataViewInitialized); // this should not be unregistered before table.EndInit().
			
			AssertEquals ("#4", 2, table.Columns.Count);
			AssertEquals ("#6", table, dv.Table);
			AssertEquals ("DataViewInitialized #5", true, dvInitialized);
		}
Beispiel #4
0
		public void BeginInit ()
		{
			DataTable table = new DataTable ("table");
			DataView dv = new DataView ();
			DataColumn col1 = new DataColumn ("col1");
			DataColumn col2 = new DataColumn ("col2");
			
			dv.BeginInit ();
			table.BeginInit ();
			table.Columns.AddRange (new DataColumn[] {col1,col2});

			dv.Table = table;
			AssertNull ("#1", dv.Table);
			dv.EndInit ();

			AssertNull ("#2", dv.Table); // still.
			AssertEquals ("#3", 0, table.Columns.Count);

			table.EndInit ();
			AssertEquals ("#5", table, dv.Table);
			AssertEquals ("#4", 2, table.Columns.Count);
		}
Beispiel #5
0
		public void TableInitializedEventTest4 ()
		{
			DataTable dt = new DataTable();
			Assert.IsTrue (dt.IsInitialized, "TableInitialized #04");
			dt.BeginInit ();
			tableInitialized = false;
			dt.Initialized += new EventHandler (OnTableInitialized);
			dt.Columns.Add("Series Label", typeof(SqlInt32));
			dt.Rows.Add(new object[] {"sss"});
			Assert.IsFalse (dt.IsInitialized, "TableInitialized #05");
			dt.EndInit ();
			Assert.IsTrue (dt.IsInitialized, "TableInitialized #06");
			Assert.IsTrue (tableInitialized, "TableInitialized #07");
			dt.Initialized -= new EventHandler (OnTableInitialized);
		}
		public void TestAddRange2 ()
		{
			DataTable table = new DataTable ("Table");
			DataColumn column1 = new DataColumn ("col1");
			DataColumn column2 = new DataColumn ("col2");
			DataColumn column3 = new DataColumn ("col3");
			table.Columns.Add (column1);
			table.Columns.Add (column2);
			table.Columns.Add (column3);
			string [] columnNames = {"col1", "col2", "col3"};
                                                                                                    
			Constraint [] constraints = new Constraint[3];
			constraints [0] = new UniqueConstraint ("Unique1", column1);
			constraints [1] = new UniqueConstraint ("Unique2", column2);
			constraints [2] = new UniqueConstraint ("Unique3", columnNames, true);
                                                                                                    
			table.BeginInit ();
			//Console.WriteLine(table.InitStatus == DataTable.initStatus.BeginInit);
			table.Constraints.AddRange (constraints);
                                                                                                    
			//Check the table property of UniqueConstraint Object
			try {
				Assert.That (constraints [2].Table, Is.Null, "#A01");
			} catch (Exception e) {
				Assert.That (e, Is.TypeOf (typeof(NullReferenceException)), "#A02");
			}

			table.EndInit ();

			// After EndInit is called the constraints associated with most recent call to AddRange() must be
			// added to the ConstraintCollection
			/* dunno if the above is true, but it crashes on .NET either. Disabling.
			Assert.That (constraints [2].Table.ToString (), Is.EqualTo ("Table"), "#A03");
			Assert.That (table.Constraints.Contains ("Unique1"), Is.True, "#A04");
			Assert.That (table.Constraints.Contains ("Unique3"), Is.True, "#A06");
			Assert.That (table.Constraints.Contains ("Unique2"), Is.True, "#A05");
			*/
		}
		public void BeginInit_Cols_Constraints ()
		{
			DataTable table = new DataTable ();

			// if both cols and constraints are added after BeginInit, the cols
			// should be added, before the constraints are added/validated
			table.BeginInit ();
			DataColumn col1 = new DataColumn ("col1", typeof (int));
			table.Columns.AddRange (new DataColumn[] {col1});
			UniqueConstraint uc = new UniqueConstraint (string.Empty, new String[] {"col1"}, false);
			table.Constraints.AddRange (new Constraint[] {uc});
			// no exception shud be thrown
			table.EndInit ();

			Assert.AreEqual (1, table.Constraints.Count, "#1");
		}
		public void BeginInit_PrimaryKey_2()
		{
			DataTable table = new DataTable ();
			DataColumn col = table.Columns.Add ("col", typeof (int));
			table.PrimaryKey = new DataColumn[] {col};
			table.AcceptChanges ();
	
			// ms.net behavior.	
			table.BeginInit ();
			DataColumn col1 = new DataColumn ("col1", typeof (int));
			table.Columns.AddRange (new DataColumn[] {col1});
			UniqueConstraint uc = new UniqueConstraint (string.Empty, new String[] {"col1"}, true);
			table.Constraints.AddRange (new Constraint[] {uc});

			try {
				table.EndInit ();
				Assert.Fail ("#1");
			} catch (ArgumentException ex) {
				// Cannot add primary key constraint since primary
				// key is already set for the table
				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
				Assert.IsNull (ex.InnerException, "#3");
				Assert.IsNotNull (ex.Message, "#4");
				Assert.IsNull (ex.ParamName, "#5");
			}
		}
		public void BeginInit_PrimaryKey_3 ()
		{
			DataTable table = new DataTable ();
			DataColumn col1 = table.Columns.Add ("col1", typeof (int));
			DataColumn col2 = table.Columns.Add ("col2", typeof (int));
		
			// ms.net behavior
			table.BeginInit ();
			UniqueConstraint uc = new UniqueConstraint (string.Empty, new String[] {"col1"}, true);
			table.Constraints.AddRange (new Constraint[] {uc});
			table.PrimaryKey = new DataColumn [] {col2};
			table.EndInit ();

			Assert.AreEqual ("col1", table.PrimaryKey[0].ColumnName, "#1");
		}
        public virtual DataTable GetDataTable(NPathSelectQuery query, IList sourceList)
        {
            FixQuery(query);
            DataTable resultTable = new DataTable();
            resultTable.BeginInit();

            #region build columns

            int id = 0;
            foreach (NPathSelectField field in query.Select.SelectFields)
            {
                string fieldName = field.Alias;
                NPathIdentifier path = field.Expression as NPathIdentifier;
                if (path != null)
                {
                    if (path.IsWildcard)
                    {
                        throw new Exception("this can not happen"); // do not localize
                    }
                    else
                    {
                        if (fieldName == null)
                            fieldName = path.Path;

                        resultTable.Columns.Add(path.Path, typeof (object));
                    }
                }
                else
                {
                    if (fieldName == null)
                    {
                        fieldName = "col" + id.ToString();
                        id++;
                    }
                    resultTable.Columns.Add(fieldName, typeof (object));
                }
            }

            #endregion

            resultTable.EndInit();

            resultTable.BeginLoadData();

            IList resultList = InternalGetTable(query, sourceList);

            foreach (object[] values in resultList)
            {
                resultTable.Rows.Add(values);
            }

            resultTable.EndLoadData();

            return resultTable;
        }
		public void BeginInit_PrimaryKey_1 ()
		{
			DataTable table = new DataTable ();
			DataColumn col = table.Columns.Add ("col", typeof (int));
			table.PrimaryKey = new DataColumn[] {col};
			table.AcceptChanges ();
			Assert.AreEqual (1, table.PrimaryKey.Length, "#1");
		
			table.BeginInit ();
			DataColumn col2 = new DataColumn ("col2", typeof (int));
			table.Columns.AddRange (new DataColumn[] {col2});
			table.PrimaryKey = new DataColumn[] {col2};
			table.EndInit ();
			Assert.AreEqual (1, table.PrimaryKey.Length, "#2");
			Assert.AreEqual ("col2", table.PrimaryKey[0].ColumnName, "#3");
		}
Beispiel #12
0
		public void BeginInit ()
		{
			DataTable table = new DataTable ("table");
			DataView dv = new DataView ();
			DataColumn col1 = new DataColumn ("col1");
			DataColumn col2 = new DataColumn ("col2");
			
			dv.BeginInit ();
			table.BeginInit ();
			table.Columns.AddRange (new DataColumn[] {col1,col2});

			dv.Table = table;
			Assert.IsNull (dv.Table, "#1");
			dv.EndInit ();

			Assert.IsNull (dv.Table, "#2"); // still.
			Assert.AreEqual (0, table.Columns.Count, "#3");

			table.EndInit ();
			Assert.AreEqual (table, dv.Table, "#4");
			Assert.AreEqual (2, table.Columns.Count, "#5");
		}
Beispiel #13
0
        public void ImportFile()
        {
            // get db table
            SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM " + m_strTableName, Conn);

            adp.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            DataSet ds = new DataSet();

            adp.Fill(ds);
            System.Data.DataTable tbl = ds.Tables[0];

            // clear
            tbl.BeginInit();
            tbl.Rows.Clear();

            // 获得另外一张表npc, 读取name 和 map
            SqlDataAdapter adp2 = new SqlDataAdapter("SELECT * FROM npc", Conn);

            adp2.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            DataSet ds2 = new DataSet();

            adp2.Fill(ds2);
            System.Data.DataTable tbl_npc = ds2.Tables[0];

            // import
            string fileContent = FileToString(m_strFileFullName);

            fileContent = fileContent.Trim();
            string[] arrContents = fileContent.Split(new string[] { "NpcPortraitCameraInfo", "[", "]", "{", "}", "=", ",", "\r\n", "\t", " " },
                                                     StringSplitOptions.RemoveEmptyEntries);
            int arr_index = 0;

            for (int i = 0; i < arrContents.Length / 9; i++)
            {
                DataRow newRow = tbl.NewRow();
                newRow.BeginEdit();
                newRow["RepresentID"] = arrContents[arr_index++];
                newRow["PositionX"]   = arrContents[arr_index++];
                newRow["PositionY"]   = arrContents[arr_index++];
                newRow["PositionZ"]   = arrContents[arr_index++];
                newRow["LookatX"]     = arrContents[arr_index++];
                newRow["LookatY"]     = arrContents[arr_index++];
                newRow["LookatZ"]     = arrContents[arr_index++];
                newRow["Width"]       = arrContents[arr_index++];
                newRow["Height"]      = arrContents[arr_index++];
                DataRow r = tbl_npc.Rows.Find(newRow["RepresentID"]);
                newRow["Map"]  = r["map"].ToString().Trim();
                newRow["Name"] = r["Model"].ToString().Trim();
                tbl.Rows.Add(newRow);
                newRow.EndEdit();
            }

            // upload
            tbl.EndInit();
            SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adp);

            adp.InsertCommand = cmdBuilder.GetInsertCommand();
            int val = adp.Update(tbl);

            tbl.AcceptChanges();
        }
		// Even after EndInit(), MS.NET does not fill Table property
		// on UniqueConstraint.
		public void TestAddRange2()
                {
                        DataTable table = new DataTable ("Table");
                        DataColumn column1 = new DataColumn ("col1");
                        DataColumn column2 = new DataColumn ("col2");
                        DataColumn column3 = new DataColumn ("col3");
                        table.Columns.Add (column1);
                        table.Columns.Add (column2);
                        table.Columns.Add (column3);
                        string []columnNames = {"col1", "col2", "col3"};
                                                                                                    
                        Constraint []constraints = new Constraint[3];
                        constraints [0] = new UniqueConstraint ("Unique1",column1);
                        constraints [1] = new UniqueConstraint ("Unique2",column2);
                        constraints [2] = new UniqueConstraint ("Unique3", columnNames, true);
                                                                                                    
                        table.BeginInit();
                        //Console.WriteLine(table.InitStatus == DataTable.initStatus.BeginInit);
                        table.Constraints.AddRange (constraints);
                                                                                                    
                        //Check the table property of UniqueConstraint Object
                        try{
                                Assertion.AssertNull ("#01", constraints [2].Table);
                        }
                        catch (Exception e) {
                                Assertion.Assert ("#A02", "System.NullReferenceException".Equals (e.GetType().ToString()));
                        }

			table.EndInit();

			// After EndInit is called the constraints associated with most recent call to AddRange() must be
			// added to the ConstraintCollection
                        Assertion.Assert ("#A03", constraints [2].Table.ToString().Equals ("Table"));
                        Assertion.Assert ("#A04", table.Constraints.Contains ("Unique1"));
                        Assertion.Assert ("#A05", table.Constraints.Contains ("Unique2"));
                        Assertion.Assert ("#A06", table.Constraints.Contains ("Unique3"));

                }
 public void Excute()
 {
     if (this.Variant.Trim().Equals(""))
     {
         foreach (QuerySelectionParameter parameter in this.SelectionParameters)
         {
             if ((parameter.Obligatory && (parameter.Ranges.Count == 0)) && !parameter.NoDisplay)
             {
                 throw new SAPException(string.Format(Messages.Theselectionparameter_0_isobligatoryandthereisnovalueprovided, parameter.Name));
                 //throw new Exception();
             }
         }
     }
     IRfcFunction function = this._des.Repository.CreateFunction("RSAQ_REMOTE_QUERY_CALL");
     if (this._WorkArea == WorkSpace.StandardArea)
     {
         function["WORKSPACE"].SetValue(" ");
     }
     else
     {
         function["WORKSPACE"].SetValue("X");
     }
     function["QUERY"].SetValue(this._Name);
     function["USERGROUP"].SetValue(this._UserGroup);
     function["VARIANT"].SetValue(this._Variant);
     function["SKIP_SELSCREEN"].SetValue("X");
     function["DATA_TO_MEMORY"].SetValue("X");
     function["DBACC"].SetValue(this._MaxRows);
     foreach (QuerySelectionParameter parameter2 in this._SelectionParameters)
     {
         for (int j = 0; j < parameter2.Ranges.Count; j++)
         {
             IRfcTable table = function.GetTable("SELECTION_TABLE");
             table.Append();
             IRfcStructure structure = table.CurrentRow;
             structure["SELNAME"].SetValue(parameter2.Name);
             structure["KIND"].SetValue((parameter2.Kind == Kind.Parameter) ? "P" : "S");
             structure["SIGN"].SetValue((parameter2.Ranges[j].Sign == Sign.Include) ? "I" : "E");
             switch (parameter2.Ranges[j].Option)
             {
                 case RangeOption.Equals:
                     structure["OPTION"].SetValue("EQ");
                     break;
                 case RangeOption.NotEquals:
                     structure["OPTION"].SetValue("NE");
                     break;
                 case RangeOption.GreaterThan:
                     structure["OPTION"].SetValue("GT");
                     break;
                 case RangeOption.LessThan:
                     structure["OPTION"].SetValue("LT");
                     break;
                 case RangeOption.GreaterThanOrEqualTo:
                     structure["OPTION"].SetValue("GE");
                     break;
                 case RangeOption.LessThanOrEqualTo:
                     structure["OPTION"].SetValue("LE");
                     break;
                 case RangeOption.Between:
                     structure["OPTION"].SetValue("BT");
                     break;
                 case RangeOption.NotBetween:
                     structure["OPTION"].SetValue("NB");
                     break;
                 case RangeOption.MatchesPattern:
                     structure["OPTION"].SetValue("CP");
                     break;
                 case RangeOption.NotMatchesPattern:
                     structure["OPTION"].SetValue("NP");
                     break;
                 default:
                     throw new Exception(string.Format(Messages.Unabletoconvert_0, parameter2.Ranges[j].Option.ToString()));
                 //throw new Exception();
             }
             structure["LOW"].SetValue(parameter2.Ranges[j].LowValue);
             structure["HIGH"].SetValue(parameter2.Ranges[j].HighValue);
         }
     }
     try
     {
         function.Invoke(_des);
     }
     catch (RfcAbapException exception)
     {
         if (exception.Message.Equals("NO_USERGROUP"))
         {
             throw new SAPException(Messages.Usergroupdoesnotexist, exception);
         }
         if (exception.Message.Equals("NO_QUERY"))
         {
             throw new SAPException(Messages.Querydoesnotexists, exception);
         }
         if (exception.Message.Equals("QUERY_LOCKED"))
         {
             throw new SAPException(Messages.Querylocked, exception);
         }
         if (exception.Message.Equals("NO_SELECTION"))
         {
             throw new SAPException(Messages.PleasedefineaselectionorusetheMaxRowsproperty, exception);
         }
         if (exception.Message.Equals("NO_VARIANT"))
         {
             throw new SAPException(Messages.Novariantorvariantinvalid, exception);
         }
         if (exception.Message.Equals("JUST_VIA_VARIANT"))
         {
             throw new SAPException(Messages.Querymusthaveavariant, exception);
         }
         if (exception.Message.Equals("NO_SUBMIT_AUTH"))
         {
             throw new SAPException(Messages.Badauthentication, exception);
         }
         if (exception.Message.Equals("NO_DATA_SELECTED"))
         {
             throw new SAPException(Messages.Nodatacouldbeselected, exception);
         }
         if (exception.Message.Equals("DATA_TO_MEMORY_NOT_POSSIBLE"))
         {
             throw new SAPException(Messages.ErrorduringSAPmemoryallocation, exception);
         }
         throw new SAPException(exception.Key + exception.Message);
     }
     this._Fields.Clear();
     string str = "";
     foreach (IRfcStructure structure2 in function.GetTable("LISTDESC").ToList())
     {
         if (str == "")
         {
             str = structure2["LID"].GetValue().ToString();
         }
         if (structure2["LID"].GetValue().ToString() == str)
         {
             bool flag = false;
             for (int k = 0; k < this._Fields.Count; k++)
             {
                 if (this._Fields[k].Name.Equals(structure2["FNAMEINT"].GetValue().ToString()))
                 {
                     flag = true;
                 }
             }
             if (!flag)
             {
                 this._Fields.Add(new QueryField(structure2["FNAMEINT"].GetValue().ToString(), structure2["FTYP"].GetValue().ToString(), Convert.ToInt32(structure2["FLEN"].GetValue().ToString()), Convert.ToInt32(structure2["FDEC"].GetValue().ToString()), structure2["FDESC"].GetValue().ToString()));
             }
         }
     }
     DataTable dt = new DataTable();
     dt.BeginInit();
     for (int i = 0; i < this._Fields.Count; i++)
     {
         string name = this._Fields[i].Name;
         DataColumn column = new DataColumn(name)
         {
             Caption = this._Fields[i].Description
         };
         if (this._Fields[i].ABAPType.Equals("I"))
         {
             column.DataType = Type.GetType("System.Int32");
         }
         else if (this._Fields[i].ABAPType.Equals("F"))
         {
             column.DataType = Type.GetType("System.Double");
         }
         else if (this._Fields[i].ABAPType.Equals("P"))
         {
             column.DataType = Type.GetType("System.Decimal");
         }
         else
         {
             column.DataType = Type.GetType("System.String");
         }
         if (!this.SpalteVorhanden(dt, name))
         {
             dt.Columns.Add(column);
         }
     }
     dt.EndInit();
     int startIndex = 0;
     int num5 = 0;
     int length = 0;
     int num7 = 0;
     string str3 = "";
     string str4 = "";
     bool flag2 = true;
     IRfcStructure structure3 = null;
     if (function.GetTable("LDATA").RowCount > 0)
     {
         DataRow row = dt.NewRow();
         while (flag2)
         {
             IRfcTable tb = function.GetTable("LDATA");
             structure3 = function.GetTable("LDATA")[num7];
             str3 = structure3["LINE"].GetValue().ToString().PadRight(0x41a);
             string str5 = str3.Substring(startIndex, 3);
             if (str5.Contains(":") && (startIndex > 1))
             {
                 startIndex--;
                 str5 = str3.Substring(startIndex, 3);
             }
             if (str5.Contains(":") && (startIndex > 1))
             {
                 startIndex--;
                 str5 = str3.Substring(startIndex, 3);
             }
             if (str5.Equals("   "))
             {
                 if (num7 < (function.GetTable("LDATA").RowCount - 1))
                 {
                     num7++;
                     startIndex = 0;
                 }
                 else
                 {
                     flag2 = false;
                 }
                 continue;
             }
             if (str5.Equals("/  "))
             {
                 flag2 = false;
                 continue;
             }
             length = Convert.ToInt32(str5);
             startIndex += 4;
             str4 = str3.Substring(startIndex, length);
             if (this._Fields[num5].ABAPType.Equals("I"))
             {
                 try
                 {
                     bool flag3 = false;
                     if (str4.EndsWith("-"))
                     {
                         flag3 = true;
                         str4 = str4.Substring(0, str4.Length - 1);
                     }
                     int num8 = Convert.ToInt32(str4);
                     if (flag3)
                     {
                         num8 *= -1;
                     }
                     row[num5] = num8;
                     goto Label_0B7C;
                 }
                 catch (Exception exception2)
                 {
                     throw new SAPException("Unable to convert '" + str4 + "' to data type Int32", exception2);
                     //throw exception2;
                 }
             }
             if (this._Fields[num5].ABAPType.Equals("P"))
             {
                 str4 = str4.Replace(".", "").Replace(",", "");
                 bool flag4 = false;
                 try
                 {
                     if (str4.EndsWith("-"))
                     {
                         flag4 = true;
                         str4 = str4.Substring(0, str4.Length - 1);
                     }
                     int num9 = str4.Length;
                     string str6 = str4.Substring(num9 - this._Fields[num5].Decimals, this._Fields[num5].Decimals);
                     string str7 = str4.Substring(0, num9 - this._Fields[num5].Decimals);
                     if (str6.Equals(""))
                     {
                         str6 = "0";
                     }
                     decimal num10 = Convert.ToDecimal(str7) + (Convert.ToDecimal(str6) / Convert.ToDecimal(Math.Pow(10.0, (double)this._Fields[num5].Decimals)));
                     if (flag4)
                     {
                         num10 *= -1M;
                     }
                     row[num5] = num10;
                     goto Label_0B7C;
                 }
                 catch (Exception exception3)
                 {
                     throw new SAPException("Unable to convert '" + str4 + "' to data type Decimal", exception3);
                 }
             }
             if (this._Fields[num5].ABAPType.Equals("F"))
             {
                 try
                 {
                     row[num5] = Convert.ToDouble(str4);
                     goto Label_0B7C;
                 }
                 catch (Exception exception4)
                 {
                     throw new SAPException("Unable to convert '" + str4 + "' to data type Double", exception4);
                 }
             }
             try
             {
                 row[num5] = str4;
             }
             catch (Exception exception5)
             {
                 throw new SAPException("Unable to process value '" + str4 + "'", exception5);
             }
         Label_0B7C:
             startIndex += length + 1;
             if (num5 == (this._Fields.Count - 1))
             {
                 dt.Rows.Add(row);
                 row = dt.NewRow();
                 num5 = 0;
             }
             else
             {
                 num5++;
             }
         }
         this._Result = dt;
     }
 }
 /// <summary>
 ///  Rename DataTable Column with Required Value
 /// </summary>
 /// <param name="Table"></param>
 private void RenameColumn(ref DataTable Table)
 {
     Table.BeginInit();
         Table.Columns[0].ColumnName = this.ColumnsHeader[DRCColumnsHeader.Time];
         Table.Columns[1].ColumnName = this.ColumnsHeader[DRCColumnsHeader.AreaId];
         Table.Columns[2].ColumnName = this.ColumnsHeader[DRCColumnsHeader.AreaName];
         Table.Columns[3].ColumnName = this.ColumnsHeader[DRCColumnsHeader.DataValue];
         Table.Columns[4].ColumnName = this.ColumnsHeader[DRCColumnsHeader.Source];
         Table.EndInit();
 }