2 u013274690 u013274690 于 2015.06.12 08:41 提问

如何动态创建多个Datatable呢

通过for循环动态创建了n个datatable,放入dataset,gridview.datasource=ds.tables["tablename"]为什么不可以?

1个回答

gamefinity
gamefinity   Rxr 2015.06.12 09:09
已采纳
using System;
using System.Data;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            DataSet s = new DataSet();
            DataTable t1 = new DataTable("Table1");
            t1.Columns.Add();
            t1.Columns.Add();
            t1.Rows.Add("a", "b");
            t1.Rows.Add("c", "d");
            t1.Rows.Add("e", "f");
            t1.Rows.Add("g", "h");
            t1.Rows.Add("i", "j");
            s.Tables.Add(t1);

            t1 = new DataTable("Table2");
            t1.Columns.Add();
            t1.Columns.Add();
            t1.Columns.Add();
            t1.Columns.Add();
            t1.Rows.Add("a", "b", "c", "d");
            t1.Rows.Add("c", "d", "e", "f");
            t1.Rows.Add("e", "f", "g", "h");
            s.Tables.Add(t1);

            var t2 = s.Tables["Table1"];
            Console.WriteLine("Table1:Columns={0}.Rows={1}", t2.Columns.Count, t2.Rows.Count);
            t2 = s.Tables["Table2"];
            Console.WriteLine("Table2:Columns={0}.Rows={1}", t2.Columns.Count, t2.Rows.Count);
            Console.ReadLine();
        }
    }
}

结果

Table1:Columns=2.Rows=5
Table2:Columns=4.Rows=3

u013274690
u013274690 回复知常曰明: 明白了。学习了!非常感谢你!
2 年多之前 回复
gamefinity
gamefinity 回复温暖如阳光: DataSet有Add(string)这个方法。但是,它返回了一个Datatable。你要对它返回的DataTable进行格式的修改、数据的插入等。可以这样认为,DataSet.Tables.Add("a") 相当于var dt = new dataTable("a");DataSet.tables.Add(dt);这两句的简化形式。
2 年多之前 回复
gamefinity
gamefinity 回复温暖如阳光: “Table1”是一个字符串,dataset哪里知道你的这个字符串指的是哪个DataTable。计算机不会帮你去找的,至少现在的计算机。
2 年多之前 回复
u013274690
u013274690 s.Tables.Add(t1); 这句写成s.Tables.Add(“Table1”)不行吗?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片