//Assuming at least one ShippingMethod has been created using the Orders UI public Guid GetShippingMethodID() { Guid shippingMethodId = Guid.Empty; Boolean shipMethodFound = false; //Get all PaymentMethods in default language - Hopefully there is one of each type DataSet shipMethods = orderCtx.GetShippingMethods(); DataTableReader reader = shipMethods.CreateDataReader(); IEnumerator readerEnum = reader.GetEnumerator(); while (readerEnum.MoveNext() && !shipMethodFound) { DbDataRecord rec = (DbDataRecord)readerEnum.Current; shippingMethodId = rec.GetGuid(rec.GetOrdinal("ShippingMethodId")); shipMethodFound = true; } if (Guid.Empty == shippingMethodId) { throw new ApplicationException("This demo requires at least one ShippingMethod to be defined!"); } return(shippingMethodId); }
//Assuming at least one CreditCard PaymentMethod has been created using the Orders UI public Guid GetPaymentMethodID() { Guid creditCardPaymentMethodId = Guid.Empty; Boolean ccPmtMethodFound = false; //Get all PaymentMethods DataSet pmtMethods = orderCtx.GetPaymentMethods(); DataTableReader reader = pmtMethods.CreateDataReader(); IEnumerator readerEnum = reader.GetEnumerator(); while (readerEnum.MoveNext() && !ccPmtMethodFound) { DbDataRecord rec = (DbDataRecord)readerEnum.Current; switch (rec.GetInt32(rec.GetOrdinal("PaymentType"))) { case (int)PaymentMethodTypes.CreditCard: creditCardPaymentMethodId = rec.GetGuid(rec.GetOrdinal("PaymentMethodId")); ccPmtMethodFound = true; break; } } if (Guid.Empty == creditCardPaymentMethodId) { throw new ApplicationException("This demo requires at least one CreditCard type of PaymentMethod to be defined!"); } return(creditCardPaymentMethodId); }
// <Snippet1> public static void Main() { try { DataTable userTable = new DataTable("peopleTable"); userTable.Columns.Add("Id", typeof(int)); userTable.Columns.Add("Name", typeof(string)); // Note that even if you create the DataTableReader // before adding the rows, the enumerator can still // visit all the rows. DataTableReader reader = userTable.CreateDataReader(); userTable.Rows.Add(new object[] { 1, "Peter" }); userTable.Rows.Add(new object[] { 2, "Mary" }); userTable.Rows.Add(new object[] { 3, "Andy" }); userTable.Rows.Add(new object[] { 4, "Russ" }); IEnumerator enumerator = reader.GetEnumerator(); // Keep track of whether the row to be deleted // has actually been deleted yet. This allows // this sample to demonstrate that the enumerator // is able to survive row deletion. bool isRowDeleted = false; while (enumerator.MoveNext()) { DbDataRecord dataRecord = (DbDataRecord)enumerator.Current; // While the enumerator is active, delete a row. // This doesn't affect the behavior of the enumerator. if (!isRowDeleted) { isRowDeleted = true; userTable.Rows[2].Delete(); } Console.WriteLine(dataRecord.GetString(1)); } } catch (Exception ex) { Console.WriteLine(ex); } Console.ReadLine(); }
public void EnumeratorTest () { DataTable table = new DataTable (); table.Columns.Add ("col1", typeof(int)); table.Rows.Add (new object[] {0}); table.Rows.Add (new object[] {1}); DataTableReader rdr = table.CreateDataReader (); IEnumerator enmr = rdr.GetEnumerator (); table.Rows.Add (new object[] {2}); table.Rows.RemoveAt (0); //Test if the Enumerator is stable int i = 1; while (enmr.MoveNext ()) { DbDataRecord rec = (DbDataRecord)enmr.Current; Assert.AreEqual (i, rec.GetInt32 (0), "#2_" + i); i++; } }