示例#1
0
        static void example1()
        {
            DataTable table = new DataTable("TableName");

            DataColumn col1 = new DataColumn("col1", typeof(int));
            DataColumn col2 = new DataColumn("col2", typeof(string));

            DataColumnCollection columnCollection = table.Columns;

            columnCollection.AddRange(new DataColumn[] { col1, col2 });

            foreach (DataColumn column in table.Columns)
            {
                Console.WriteLine("{0}: {1}", column.ColumnName, column.DataType);
            }

            DataRow r = table.NewRow();

            r["col1"] = 1;
            r["col2"] = "one";

            table.Rows.Add(r);

            foreach (DataRow row in table.Rows)
            {
                foreach (DataColumn column in table.Columns)
                {
                    Console.WriteLine("{0}: {1}", column.ColumnName, row[column]);
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            DataTable            newTable = new DataTable("First");
            DataColumn           first    = new DataColumn("name", typeof(string));
            DataColumn           second   = new DataColumn("age", typeof(int));
            DataColumnCollection coll     = newTable.Columns;

            coll.AddRange(new DataColumn[] { first, second });
            foreach (DataColumn item in newTable.Columns)
            {
                Console.WriteLine(item.ColumnName + " " + item.DataType);
                Console.WriteLine(new string('-', 40));
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            DataTable table = new DataTable("MyFirstTable");

            DataColumn firstColumn  = new DataColumn("First Column", typeof(int));
            DataColumn secondColumn = new DataColumn("Second column", typeof(string));

            DataColumnCollection columnCollection = table.Columns;

            columnCollection.AddRange(new DataColumn[] { firstColumn, secondColumn });

            foreach (DataColumn column in table.Columns)
            {
                Console.WriteLine("{0}: {1};", column.ColumnName, column.DataType);
            }
        }
示例#4
0
            private static FeatureDataTable VehicleDataTable()
            {
                FeatureDataTable dt = new FeatureDataTable {
                    TableName = "VilniusTransportData"
                };
                DataColumnCollection dcc = dt.Columns;

                dcc.AddRange(new[]
                {
                    new DataColumn("Id", typeof(int)),
                    //new System.Data.DataColumn("Lat", typeof(double)),
                    //new System.Data.DataColumn("Lng", typeof(double)),
                    new DataColumn("Line", typeof(string)),
                    new DataColumn("LastStop", typeof(string)),
                    new DataColumn("TrackType", typeof(string)),
                    new DataColumn("AreaName", typeof(string)),
                    new DataColumn("StreetName", typeof(string)),
                    new DataColumn("Time", typeof(string)),
                    new DataColumn("Bearing", typeof(double))
                });
                return(dt);
            }
示例#5
0
        static void Main(string[] args)
        {
            var table = new DataTable(); //you can also use ctor new DataTable("MyFirstTable");

            table.TableName = "MyFirstTable";

            var firstColumn = new System.Data.DataColumn();

            firstColumn.ColumnName = "FirstColumn";
            firstColumn.DataType   = typeof(int);
            var secondColumn = new System.Data.DataColumn("SecondColumn", typeof(string)); //if you don't mention type, it'll take string by default

            DataColumnCollection columns = table.Columns;

            columns.AddRange(new System.Data.DataColumn[] { firstColumn, secondColumn });

            foreach (System.Data.DataColumn column in table.Columns)
            {
                Console.WriteLine($"{column.ColumnName}: {column.DataType}");
            }

            Console.ReadKey();
        }
        public void AddRange()
        {
            DataTable            table = new DataTable("test_table");
            DataColumnCollection cols  = table.Columns;
            DataColumn           c     = null;

            DataColumn[] colArray = new DataColumn[2];

            c           = new DataColumn("test1");
            colArray[0] = c;

            c             = new DataColumn("test2");
            c.AllowDBNull = false;
            c.Caption     = "Test_caption";
            c.DataType    = typeof(XmlReader);
            colArray[1]   = c;

            cols.AddRange(colArray);

            c = cols[0];
            Assert.True(c.AllowDBNull);
            Assert.False(c.AutoIncrement);
            Assert.Equal(0L, c.AutoIncrementSeed);
            Assert.Equal(1L, c.AutoIncrementStep);
            Assert.Equal("test1", c.Caption);
            Assert.Equal("Element", c.ColumnMapping.ToString());
            Assert.Equal("test1", c.ColumnName);
            Assert.Null(c.Container);
            Assert.Equal(typeof(string), c.DataType);
            Assert.Equal(DBNull.Value, c.DefaultValue);
            Assert.False(c.DesignMode);
            Assert.Equal("", c.Expression);
            Assert.Equal(0, c.ExtendedProperties.Count);
            Assert.Equal(-1, c.MaxLength);
            Assert.Equal("", c.Namespace);
            Assert.Equal(0, c.Ordinal);
            Assert.Equal("", c.Prefix);
            Assert.False(c.ReadOnly);
            Assert.Null(c.Site);
            Assert.Equal("test_table", c.Table.TableName);
            Assert.Equal("test1", c.ToString());
            Assert.False(c.Unique);

            c = cols[1];
            Assert.False(c.AllowDBNull);
            Assert.False(c.AutoIncrement);
            Assert.Equal(0L, c.AutoIncrementSeed);
            Assert.Equal(1L, c.AutoIncrementStep);
            Assert.Equal("Test_caption", c.Caption);
            Assert.Equal("Element", c.ColumnMapping.ToString());
            Assert.Equal("test2", c.ColumnName);
            Assert.Null(c.Container);
            Assert.Equal(typeof(XmlReader), c.DataType);
            Assert.Equal(DBNull.Value, c.DefaultValue);
            Assert.False(c.DesignMode);
            Assert.Equal("", c.Expression);
            Assert.Equal(0, c.ExtendedProperties.Count);
            Assert.Equal(-1, c.MaxLength);
            Assert.Equal("", c.Namespace);
            Assert.Equal(1, c.Ordinal);
            Assert.Equal("", c.Prefix);
            Assert.False(c.ReadOnly);
            Assert.Null(c.Site);
            Assert.Equal("test_table", c.Table.TableName);
            Assert.Equal("test2", c.ToString());
            Assert.False(c.Unique);
        }
示例#7
0
 /// <summary>
 ///     批量增加 DataColumn
 /// </summary>
 /// <param name="this"></param>
 /// <param name="columnNames">列名集合</param>
 /// <exception cref="DuplicateNameException"><paramref name="columnNames" />有特殊列名</exception>
 /// <example>
 ///     <code>
 ///         <![CDATA[
 /// var dt       = new DataTable();
 /// dt.Columns.AddRange("Field1", "Field2", "Field3");
 /// // dt.Columns == {"Field1", "Field2", "Field3"}
 ///         ]]>
 ///     </code>
 /// </example>
 public static void AddRangeParams(this DataColumnCollection @this, params string[] columnNames)
 {
     @this.AddRange(columnNames);
 }
示例#8
0
        public void AddRange()
        {
            DataTable            Table  = new DataTable("test_table");
            DataTable            Table2 = new DataTable("test_table2");
            DataColumnCollection Cols   = Table.Columns;
            DataColumn           C      = null;

            DataColumn [] ColArray = new DataColumn [2];

            C            = new DataColumn("test1");
            ColArray [0] = C;

            C             = new DataColumn("test2");
            C.AllowDBNull = false;
            C.Caption     = "Test_caption";
            C.DataType    = typeof(XmlReader);
            ColArray [1]  = C;

            Cols.AddRange(ColArray);

            C = Cols [0];
            Assert.IsTrue(C.AllowDBNull, "test#01");
            Assert.IsFalse(C.AutoIncrement, "test#02");
            Assert.AreEqual(0L, C.AutoIncrementSeed, "test#03");
            Assert.AreEqual(1L, C.AutoIncrementStep, "test#04");
            Assert.AreEqual("test1", C.Caption, "test#05");
            Assert.AreEqual("Element", C.ColumnMapping.ToString(), "test#06");
            Assert.AreEqual("test1", C.ColumnName, "test#07");
            //Assert.IsNull (C.Container, "test#08");
            Assert.AreEqual(typeof(string), C.DataType, "test#09");
            Assert.AreEqual(DBNull.Value, C.DefaultValue, "test#10");
            //Assert.IsFalse (C.DesignMode, "test#11");
            Assert.AreEqual("", C.Expression, "test#12");
            Assert.AreEqual(0, C.ExtendedProperties.Count, "test#13");
            Assert.AreEqual(-1, C.MaxLength, "test#14");
            Assert.AreEqual("", C.Namespace, "test#15");
            Assert.AreEqual(0, C.Ordinal, "test#16");
            Assert.AreEqual("", C.Prefix, "test#17");
            Assert.IsFalse(C.ReadOnly, "test#18");
            //Assert.IsNull (C.Site, "test#19");
            Assert.AreEqual("test_table", C.Table.TableName, "test#20");
            Assert.AreEqual("test1", C.ToString(), "test#21");
            Assert.IsFalse(C.Unique, "test#22");

            C = Cols [1];
            Assert.IsFalse(C.AllowDBNull, "test#01");
            Assert.IsFalse(C.AutoIncrement, "test#02");
            Assert.AreEqual(0L, C.AutoIncrementSeed, "test#03");
            Assert.AreEqual(1L, C.AutoIncrementStep, "test#04");
            Assert.AreEqual("Test_caption", C.Caption, "test#05");
            Assert.AreEqual("Element", C.ColumnMapping.ToString(), "test#06");
            Assert.AreEqual("test2", C.ColumnName, "test#07");
            //Assert.IsNull (C.Container, "test#08");
            Assert.AreEqual(typeof(XmlReader), C.DataType, "test#09");
            Assert.AreEqual(DBNull.Value, C.DefaultValue, "test#10");
            //Assert.IsFalse (C.DesignMode, "test#11");
            Assert.AreEqual("", C.Expression, "test#12");
            Assert.AreEqual(0, C.ExtendedProperties.Count, "test#13");
            Assert.AreEqual(-1, C.MaxLength, "test#14");
            Assert.AreEqual("", C.Namespace, "test#15");
            Assert.AreEqual(1, C.Ordinal, "test#16");
            Assert.AreEqual("", C.Prefix, "test#17");
            Assert.IsFalse(C.ReadOnly, "test#18");
            //Assert.IsNull (C.Site, "test#19");
            Assert.AreEqual("test_table", C.Table.TableName, "test#20");
            Assert.AreEqual("test2", C.ToString(), "test#21");
            Assert.IsFalse(C.Unique, "test#22");
        }
            public static DataTable Create(
                string className,
                Dictionary <string, DataColumn> headOid,
                Dictionary <string, DataColumn> headCol,
                List <int> duplicates)
            {
                #region Instance a DataTable.
                DataTable lResult = null;
                if (className == null)
                {
                    className = string.Empty;
                }

                if (className.Length > 0)
                {
                    lResult = new DataTable(className);
                }
                else
                {
                    lResult = new DataTable();
                }
                #endregion Instance a DataTable.

                DataColumnCollection lColumns = lResult.Columns;

                #region Add Oid Fields to DataSet.
                if (headOid != null)
                {
                    // Save Oid Info.
                    string[] lOidNames = new string[headOid.Count];
                    headOid.Keys.CopyTo(lOidNames, 0);
                    lResult.ExtendedProperties.Add(DataTableProperties.OidFieldNames, new List <string>(lOidNames));

                    // Add Oid Columns.
                    DataColumn[] lOidFields = new DataColumn[headOid.Count];
                    headOid.Values.CopyTo(lOidFields, 0);
                    lColumns.AddRange(lOidFields);

                    #region Add DisplaySet to DataTable.
                    if (headCol != null)
                    {
                        foreach (DataColumn i in lOidFields)
                        {
                            if (headCol.ContainsKey(i.ColumnName))
                            {
                                duplicates.Add((int)headCol[i.ColumnName].ExtendedProperties[DataTableProperties.DataColumnProperties.Index]);
                                headCol.Remove(i.ColumnName);
                            }
                        }

                        // Add DisplaySet - OID Columns.
                        DataColumn[] lDisplaySet = new DataColumn[headCol.Count];
                        headCol.Values.CopyTo(lDisplaySet, 0);
                        lColumns.AddRange(lDisplaySet);
                    }
                    #endregion Add DisplaySet to DataSet.

                    #region Add Oid Fields to UniqueConstraint.
                    StringBuilder lUniqueConstraintName = new StringBuilder(PrefixUniqueConstraint);
                    lUniqueConstraintName.Append(lResult.TableName);
                    lResult.Constraints.Add(new UniqueConstraint(lUniqueConstraintName.ToString(), lOidFields, true));
                    #endregion Add Oid Fields to UniqueConstraint.
                }
                #endregion Add Oid Fields to DataSet.
                else
                {
                    throw new ArgumentException();             // TODO: Add rich message error.
                }
                return(lResult);
            }
示例#10
0
 /// <summary>
 /// Copies the elements of the specified DataColumn array to the end of the collection.
 /// </summary>
 /// <param name="columns">The array of DataColumn objects to add to the collection.</param>
 public void AddRange(DataColumn[] columns)
 {
     _dataColumnCollection.AddRange(columns);
 }