当前位置:编程学习 > C#/ASP.NET >>

在线等,,高手指点。。。

--------------------编程问答--------------------  DataSet ds = new DataSet();
 ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
ds.Tables.Add(dt3); --------------------编程问答-------------------- 楼上的,不行呀。。这样会报错的。 --------------------编程问答-------------------- 楼上正解
--------------------编程问答-------------------- Web or Form ? --------------------编程问答-------------------- Web --------------------编程问答-------------------- 你是怎么报错的啊? --------------------编程问答-------------------- 把你的代码贴上来看看吧 --------------------编程问答-------------------- 报错说 datatable 已经属于别的dataSet  --------------------编程问答-------------------- string SQL = "select * from dt1; select * from dt2; select * from dt3;"
执行后的DataSet包含3张表,分别对应Table[0],Table[1],Table[2] --------------------编程问答-------------------- 应该: string SQL = "select * from dt1  select * from dt2  select * from dt3 " 
--------------------编程问答-------------------- 已经属于别的DATASET干吗还要加到这个DATASET中啊.. --------------------编程问答-------------------- 你是那些datatable都在一个dataSet里面,然后想把这些datatable弄到另一个dataSet里? --------------------编程问答-------------------- 那就把该表从别的Dataset中移除.
dt1.DataSet.Tables.Remove(dt1); --------------------编程问答--------------------
引用 13 楼 h_w_king 的回复:
那就把该表从别的Dataset中移除. 
dt1.DataSet.Tables.Remove(dt1);

不用吧。 --------------------编程问答-------------------- 要看你代码哦...呵呵 --------------------编程问答-------------------- DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = dt1.Copy();
ds.Tables.Add(dt2);
它属于别的表..copy 一下子啰. --------------------编程问答-------------------- DataSet ds = new DataSet(); 
dt1=从数据中查出
dt2=从数据中查出
dt3=从数据中查出
ds.Tables.Add(dt1); 
ds.Tables.Add(dt2); 
ds.Tables.Add(dt3); --------------------编程问答-------------------- DataTable dt4 = dt1.Copy();
DataTable dt5 = dt2.Copy();
DataTable dt6 = dt3.Copy();
DataSet ds = new DataSet();
 ds.Tables.Add(dt4);
ds.Tables.Add(dt5);
ds.Tables.Add(dt6); --------------------编程问答--------------------

//如果dt1,dt2,dt3分别属于不同的dataset,要放到一个dataset,
DataTable dt11 = dt1.Copy();
DataTable dt21 = dt2.Copy();
DataTable dt31 = dt3.Copy();
DataSet ds = new DataSet();
ds.Tables.Add(dt11);
ds.Tables.Add(dt21);
ds.Tables.Add(dt31);

建议在读取数据库的时候就放在一个dataset中 --------------------编程问答-------------------- 楼上的,我的DataTable 的个数是经过计算出来的,个数不确定呀。 --------------------编程问答-------------------- 慢了...-_-!!~~~ --------------------编程问答-------------------- 还没有解决呀。 --------------------编程问答-------------------- 用个循环啊。楼主。 --------------------编程问答-------------------- 会这样出错。名为“Table”的 DataTable 已属于此 DataSet --------------------编程问答-------------------- TO:wsklt,beibeishen

会这样出错。名为“Table”的 DataTable 已属于此 DataSet --------------------编程问答-------------------- 代码贴出来看看? --------------------编程问答-------------------- DataTable dt11 = dt1.Copy();
DataTable dt21 = dt2.Copy();
DataTable dt31 = dt3.Copy();
DataSet ds = new DataSet();
ds.Tables.Add(dt11);
ds.Tables.Add(dt21);
ds.Tables.Add(dt31);
--------------------编程问答--------------------
List<DataTable> dts = new List<DataTable>();//你的数据源
List<DataTable> dts2 = new List<DataTable>();
foreach (DataTable dt in dts)
{
    DataTable dttemp = dt.Copy();
    dts2.Add(dttemp);
            }
--------------------编程问答--------------------
引用 28 楼 wsklt 的回复:
DataSet ds = new DataSet();
List <DataTable>  dts = new List <DataTable> ();//你的数据源
List <DataTable>  dts2 = new List <DataTable> ();
foreach (DataTable dt in dts)
{
DataTable dttemp = dt.Copy();
ds.Tables.Add(dttemp);
}
--------------------编程问答-------------------- mark,去研究下集合吧。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你给他不用的表名或ID,然后填入表中就可以了 --------------------编程问答--------------------
/// <summary>
        /// 返回dataset集合
        /// </summary>
        /// <param name="arrSql">查询的datatable语句</param>
        /// <param name="arrTabaleName">对应的tablename</param>
        /// <returns>ds集合</returns>
        public static DataSet Adapter(ArrayList arrSql,ArrayList arrTabaleName)
        {
            DataSet ds = new DataSet();
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                connection.Open();
                for (int i = 0; i < arrSql.Count - 1; i++)
                {
                    OleDbCommand command = new OleDbCommand(arrSql[i].ToString(), connection);
                    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
                    myDataAdapter.SelectCommand = command;
                    myDataAdapter.Fill(ds, arrTabaleName[i].ToString());
                }
            }
            return ds;
        }

楼主用这个试试吧 --------------------编程问答--------------------
引用 16 楼 ysgan 的回复:
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = dt1.Copy();
ds.Tables.Add(dt2);
它属于别的表..copy 一下子啰.

copy就对了 --------------------编程问答-------------------- 把dt1,dt2,dt3分别命一下名就行了
              dt1.TableName = "dt1";
            dt2.TableName = "dt2";
            dt3.TableName = "dt3";
            DataSet ds = new DataSet();
            ds.Tables.Add(dt1);
            ds.Tables.Add(dt2);
            ds.Tables.Add(dt3); --------------------编程问答-------------------- DataSet ds = new DataSet(); 
ds.Tables.Add(dt1); 
ds.Tables.Add(dt2); 
ds.Tables.Add(dt3); --------------------编程问答-------------------- 贴出你的代码 否则割jj 看得我都烦死了 自己不说清楚自己的代码是怎么写的datatable哪里来的贴出代码好不!! --------------------编程问答--------------------
引用 24 楼 99_mei 的回复:
会这样出错。名为“Table”的 DataTable 已属于此 DataSet


已经属于了,为什么还要添加呢?

如果是改变了之后再放入新的,就把之前的删除了再加入新的吧.

引用 13 楼 h_w_king 的回复:
那就把该表从别的Dataset中移除. 
dt1.DataSet.Tables.Remove(dt1); 


--------------------编程问答-------------------- 各位都理解错误了,楼主的意思是当不得不用多条SQL取得DATATABLE时,插入同一DATASET,第一个可能能add,而第二个插入时将会爆出楼主所说的错误。而各位的回答太令人蛋疼了。 --------------------编程问答-------------------- 给表重命名下就行了。

DataSet ds = new DataSet();  
dt1.TableName= "tab1";
ds.Tables.Add(dt1.Copy());  
dt2.TableName= "tab2";
ds.Tables.Add(dt2.Copy());  
dt2.TableName= "tab2";
ds.Tables.Add(dt3.Copy());
--------------------编程问答--------------------
+1
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,