[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"); }
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; }
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; }
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); }
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); }
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_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 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_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"); }
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"); }
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(); }