日期:2014-05-18  浏览次数:20652 次

急,DataSet转DataTable,加筛选条件后出现问题。
如题,
如果DataSet没有使用如“ds_SB.Tables[0].Select( "Type_ID <4 ",   "Type_ID ")”的筛选,是可以直接赋给DataTable。
但是加了这个条件后,就只能返回DataRow[]了,填充到表的时候显示:“輸入陣列的長度大於這個資料表中的資料行數目。”错误
错误行为:“dt_Detail.Rows.Add(dr_Detail);”。
请问,我能在datatable没有填充初始化列(Columns)的   时候让DataRow[]填充吗?
      谢谢!

附代码:
                string   strSql   =   "SELECT   *   FROM   CT_DyeworksDetail   WHERE   TD_ID= "+Td_ID.ToString();
                DataSet   ds_SB   =   DbHelperSQL.Query(strSql);
                DataTable   dt_Detail   =   new   DataTable();
                DataTable   dt_Sel   =   new   DataTable();

               
                DataRow[]   dr_Detail   =   ds_SB.Tables[0].Select( "Type_ID <4 ",   "Type_ID ");//细化项目
                DataRow[]   dr_Sel   =   ds_SB.Tables[0].Select( "Type_ID=6 ",   "Type_ID ");//选择值
                dt_Detail.Rows.Add(dr_Detail);
                dt_Sel.Rows.Add(dr_Sel);

                DataRow[]   Dr_Testing   =   ds_SB.Tables[0].Select( "Type_ID=5 ");//缩水测试
                DataRow[]   Dr_Degree   =   ds_SB.Tables[0].Select( "Type_ID=7 ");   //牢度
                model_SBDetail.DtTesting.Rows.Add(Dr_Testing);
                model_SBDetail.DtDegree.Rows.Add(Dr_Degree);

------解决方案--------------------
private void MakeDataView()
{
DataView view = new DataView();

view.Table = DataSet1.Tables[ "Suppliers "];
view.AllowDelete = true;
view.AllowEdit = true;
view.AllowNew = true;
view.RowFilter = "City = 'Berlin ' ";
view.RowStateFilter = DataViewRowState.ModifiedCurrent;
view.Sort = "CompanyName DESC ";

// Simple-bind to a TextBox control
Text1.DataBindings.Add( "Text ", view, "CompanyName ");
}