2016-08-04 5 views
0

以下は、条件に基づいてレコードを表示するために使用した方法です。 Iは、データベースとデータに挿入非常に多くの列があるように表示されるべきである:私はc00-から第2グリッドバインドため 動的にdt.selectを使用してデータベースからグリッドにデータをバインドする方法はありますか?

  • A00-B99から結合する必要がある最初のグリッドの

    • E00-E89から第4グリッドバインドのためのD50-D89
    • から第3グリッドバインドのためのD49

    私はデータをバインドする必要がありますが、それは動作していないので、多くのグリッドを持っているように。

    テキスト列が排除されますにし、CからZまでのAとBで始まるデータが私の最初のグリッドにバインドされますが、AとBとのシリーズは第1グリッドとシリーズにバインドされるはずですされて何が起こる
    public void BindGrid() 
         { 
    
          string query = "select * from tablename"; 
          SqlDataAdapter da = new SqlDataAdapter(query, conn); 
          DataSet ds = new DataSet(); 
          da.Fill(ds); 
          DataTable dt = ds.Tables[0]; 
          Session["dt1"] = dt; 
          DataTable dt2 = (DataTable)Session["dt1"]; 
          DataRow[] dr = dt2.Select("Text >='A%' AND Text >='B%' OR Text ='C%'"); 
          DataTable Newdt = dr.CopyToDataTable<DataRow>(); 
          grd1.DataSource = Newdt; 
          grd1.DataBind(); 
    
         } 
    

    CとDは第2のグリッド、すなわち(c00-d49)にバインドされ、Dに残っているシリーズは第3のグリッド(すなわちD50-D89)にバインドされ、シリーズEは第4のグリッド(すなわちE00-E89)それが行われるべきであるように。 どうすればいいですか?

  • 答えて

    0

    最初のDataTableから範囲をフィルタリングし、各範囲を新しいDataTableに割り当てることをお勧めします。ここでは例を示しますが、引き続きデータのクエリを行いますが、デモ用に手動でデータを構築しています。また、shared as LinqPad Query

    DataTable dt = new DataTable(); 
    dt.Columns.Add(new DataColumn("Code", Type.GetType("System.String"))); 
    
    DataRow r = dt.NewRow(); 
    r[0] = "A00"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "B50"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "B99"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "c00"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "c30"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "c49"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "c50"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "d59"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "d50"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "d60"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "d89"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "E00"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "E50"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "E89"; 
    dt.Rows.Add(r); 
    
    r = dt.NewRow(); 
    r[0] = "E90"; 
    dt.Rows.Add(r); 
    
    var range1 = dt.AsEnumerable().Where (d => d[0].ToString().CompareTo("A") >= 0 && d[0].ToString().CompareTo("B99") <= 0); 
    DataTable TableRange1 = range1.CopyToDataTable(); 
    
    var range2 = dt.AsEnumerable().Where (d => d[0].ToString().CompareTo("c00") >= 0 && d[0].ToString().CompareTo("d49") <= 0); 
    DataTable TableRange2 = range2.CopyToDataTable(); 
    
    var range3 = dt.AsEnumerable().Where (d => d[0].ToString().CompareTo("E00") >= 0 && d[0].ToString().CompareTo("E89") <= 0); 
    DataTable TableRange3 = range3.CopyToDataTable(); 
    
    関連する問題