我的代码:
 DataTable dt = oe.aa("读取数据库中数据");
 DataRow[] dr = dt.Select("序号=1");
 dt.Clear();
 dt.Rows.Add(dr);
 
   添加的时候报错 提示说 (dr的长度大于dt的列数) 可是他们的列数是相同的啊!!!
  
    请问该怎样正确添加(不要用循环)谢谢!!!
     

解决方案 »

  1.   

    方法一:DataTable  tblDatas = new DataTable("Datas");
    DataColumn dc = null;
    dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
    dc.AutoIncrement = true;//自动增加
    dc.AutoIncrementSeed = 1;//起始为1
    dc.AutoIncrementStep = 1;//步长为1
    dc.AllowDBNull = false;//dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
    dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
    dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));DataRow newRow;
    newRow = tblDatas.NewRow();
    newRow["Product"] = "水果刀";
    newRow["Version"] = "2.0";
    newRow["Description"] = "打架专用";
    tblDatas.Rows.Add(newRow);newRow = tblDatas.NewRow();
    newRow["Product"] = "折叠凳";
    newRow["Version"] = "3.0";
    newRow["Description"] = "行走江湖七武器之一";
    tblDatas.Rows.Add(newRow);方法二: DataTable tblDatas = new DataTable("Datas");
    tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
    tblDatas.Columns[0].AutoIncrement = true;
    tblDatas.Columns[0].AutoIncrementSeed = 1;
    tblDatas.Columns[0].AutoIncrementStep = 1;tblDatas.Columns.Add("Product", Type.GetType("System.String"));
    tblDatas.Columns.Add("Version", Type.GetType("System.String"));
    tblDatas.Columns.Add("Description", Type.GetType("System.String"));tblDatas.Rows.Add(new object[]{null,"a","b","c"});
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
      

  2.   

    楼上是的 也是一条一条的插入 有没有一起DataRow[] 插入到DataTable 的方法
      

  3.   

    看清楚!“dr的长度大于dt的列数”是指数组dr的元素个数(行数)大于dt的列数,你用的方法是错误的。
      

  4.   

    看你写的代码, 你是想要DataTable里的序号=1的数据,那用一个RowFilter就可以了,还搞什么clear再写这么麻烦
      

  5.   


    DataTable dt=new DataTable();
    DataRow dr=dt.NewRow();
    dt.Rows.Add(dr);
      

  6.   


    DataTable dt=new DataTable();
    DataRow dr=dt.NewRow();
    dt.Rows.Add(dr);