本文整理汇总了C#中System.Variant.AsDataTable方法的典型用法代码示例。如果您正苦于以下问题:C# Variant.AsDataTable方法的具体用法?C# Variant.AsDataTable怎么用?C# Variant.AsDataTable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Variant
的用法示例。
在下文中一共展示了Variant.AsDataTable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteElement
//.........这里部分代码省略.........
case VariantBase.EnumType.Int32:
writer = o => m_writer.WriteString(VariantBase.ToString((int) o));
break;
case VariantBase.EnumType.UInt32:
writer = o => m_writer.WriteString(VariantBase.ToString((uint) o));
break;
case VariantBase.EnumType.Int64:
writer = o => m_writer.WriteString(VariantBase.ToString((long) o));
break;
case VariantBase.EnumType.UInt64:
writer = o => m_writer.WriteString(VariantBase.ToString((ulong) o));
break;
case VariantBase.EnumType.Time:
writer = o => m_writer.WriteString(VariantBase.ToString((TimeSpan) o));
break;
case VariantBase.EnumType.DateTime:
writer = o => m_writer.WriteString(VariantBase.ToString((DateTime) o));
break;
default:
throw new VariantException("Case exhaustion: " + array.ElementType);
}
for (int i=0; i<array.Count; ++i)
{
m_writer.WriteStartElement(XmlConst.Default);
writer(array[i]);
m_writer.WriteEndElement();
}
break;
}
case VariantBase.EnumType.DataTable:
{
#if !DISABLE_DATATABLE
DataTable dataTable = element.AsDataTable();
m_stack.Peek().m_attributes.Add("rows", new Variant(dataTable.Rows.Count));
m_stack.Peek().m_attributes.Add("columns", new Variant(dataTable.Columns.Count));
WriteAttributes(m_stack.Peek().m_attributes);
foreach (DataColumn col in dataTable.Columns)
{
Push("Column");
m_stack.Peek().m_attributes.Add("name", new Variant(col.ColumnName));
m_stack.Peek().m_attributes.Add("type", new Variant(VariantPrimitiveBase.TypeToEnum(col.DataType).ToString()));
WriteElement(new Variant());
Pop();
}
foreach (DataColumn col in dataTable.Columns)
{
Action<object> writer;
switch (VariantPrimitiveBase.TypeToEnum(col.DataType))
{
case VariantBase.EnumType.Float:
writer = o => m_writer.WriteString(VariantBase.ToString((float)o));
break;
case VariantBase.EnumType.Double:
writer = o => m_writer.WriteString(VariantBase.ToString((double)o));
break;
case VariantBase.EnumType.String:
writer = o => m_writer.WriteString((string)o);
break;
case VariantBase.EnumType.Boolean:
writer = o => m_writer.WriteString(VariantBase.ToString((bool)o));
示例2: TestConstruction
public void TestConstruction()
{
System.Data.DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("Double", typeof(double)));
dt1.Columns.Add(new DataColumn("String", typeof(string)));
DataRow dr = dt1.NewRow();
dr[0] = 1.0;
dr[1] = "value";
dt1.Rows.Add(dr);
Variant v1 = new Variant(dt1);
Assert.AreEqual(v1.Type, Variant.EnumType.DataTable);
Assert.IsTrue(v1.Is(Variant.EnumType.DataTable));
Assert.DoesNotThrow(delegate { v1.AsDataTable(); });
Assert.Throws<VariantException>(delegate { v1.As<int>(); });
}
示例3: WriteVariant
protected void WriteVariant(Variant v)
{
VariantBase.EnumType type = v.Type;
Write((Int32)type);
switch (type)
{
case VariantBase.EnumType.None:
break;
case VariantBase.EnumType.String:
case VariantBase.EnumType.Any:
Write(v.As<string>());
break;
case VariantBase.EnumType.Float:
Write(v.As<float>());
break;
case VariantBase.EnumType.Double:
Write(v.As<double>());
break;
case VariantBase.EnumType.Int32:
Write(v.As<Int32>());
break;
case VariantBase.EnumType.UInt32:
Write(v.As<UInt32>());
break;
case VariantBase.EnumType.Int64:
Write(v.As<Int64>());
break;
case VariantBase.EnumType.UInt64:
Write(v.As<UInt64>());
break;
case VariantBase.EnumType.Boolean:
Write(v.As<bool>());
break;
case VariantBase.EnumType.Time:
Write(v.As<TimeSpan>());
break;
case VariantBase.EnumType.DateTime:
Write(v.As<DateTime>());
break;
case VariantBase.EnumType.List:
case VariantBase.EnumType.Tuple:
Write(v.Count);
foreach (VariantItem item in v)
{
WriteVariant(item.Value);
}
break;
case VariantBase.EnumType.Dictionary:
case VariantBase.EnumType.Bag:
Write(v.Count);
foreach (VariantItem item in v)
{
Write(item.Key);
WriteVariant(item.Value);
}
break;
case VariantBase.EnumType.TimeSeries:
Write(v.Count);
foreach (VariantItem item in v)
{
Write(item.Time);
WriteVariant(item.Value);
}
break;
case VariantBase.EnumType.Object:
IVariantObject o = v.AsObject();
Write(o.Class);
Write(o.Version);
WriteVariant(o.Deflate());
break;
case VariantBase.EnumType.Exception:
VariantExceptionInfo x = v.AsException();
Write(x.Class);
Write(x.Message);
Write(x.Source);
Write(x.Stack);
break;
case VariantBase.EnumType.Buffer:
Write(v.AsBuffer().Length);
Write(v.AsBuffer(), true);
break;
case VariantBase.EnumType.DataTable:
Write(v.AsDataTable());
break;
case VariantBase.EnumType.Array:
Write(v.AsArray());
break;
default:
throw new VariantException("Case exhaustion: " + type.ToString());
}
}