2017-03-10 3 views
-1

現在、私はSharePointのようなアプリケーションを開発しています。オブジェクトへのSQLレコードの変換

私は、次の

+----+---------------+----------+---------+----------+--------------------------+ 
| ID | Content_type | List_ID | COL_ID | ITEM_ID |   VALUE   | 
+----+---------------+----------+---------+----------+--------------------------+ 
| 1 | "Column"  |  1 |  0 |   | "ABC"     | 
| 2 | "Column"  |  1 |  1 |   | "DEF"     | 
| 3 | "Item"  |  1 |  0 |  1 | "<VALUE OF Column ABC>" | 
| 4 | "Item"  |  1 |  1 |  1 | "<VALUE OF Column DEF>" | 
+----+---------------+----------+---------+----------+--------------------------+ 

ように私の内容を維持するためにDBテーブルを持っていると私は次のようにLINQとC#を使用してウェブ上でこれらのレコードを表示したいと思います....

ITEM_ID |ABC     |DEF 
------------+---------------------+---------------------- 
    1  |<VALUE OF Column ABC>|<VALUE OF Column DEF> 

EDITED:

私の質問は以下のとおりです。

  1. content_typeフィールドにColumnと記載されているDBレコードをDataColumnDataTableとしたいと思います。
  2. ITEMと記載されているDB内のすべてのレコードを同じItem_IDと1 DataRowのデータをDataTableとしてマップしたいと思います。各DBレコードの値フィールドはColumn IDに基づいてDataTableの列に落ちます。
+0

あなたのDBはMySQLですか? –

+0

あなたの質問は質問ではありません。それは声明です。この問題に関する詳細情報を提供してください。 – codtex

+0

はいDBにMySQLを使用しています – Vincent

答えて

0

ありがとうございました。私が最初にDBどこCONTENT_TYPE =「コラム」からレコードを取得し、DataTableの

  • を形成するために これらのレコードを使用

    • ....自分でそれを作ることだったDBどこcontent_typ =「項目からすべてのレコードを取得します。 「ITEM_ID =
    • は、データテーブルの行のデータテーブルとItems.value =値のItem.title =カラム地図リストに再グループの各項目....

      パブリック静的データテーブルPopulateRec( int list_id、文字列web_app、文字列host_auth) { DataTable dt =新しいDataTable(); リストの列= Get_Column(list_id、web_app、host_auth); for(int i = 0; i < Column.Count(); i ++) { DataColumn datacolumn = new DataColumn(); datacolumn.ColumnName = Column [i] .ToString(); dt.Columns.Add(datacolumn); } リストアイテム= Get_Item(list_id、web_app、host_auth); if(Items.Count!= 0) { int ItemCount = Convert.ToInt32((アイテム内のItmsから) 選択Itms.Item_id).Max()); (int j = 0; j < = ItemCount; j ++) { dt.Rows.Add(); リストIndvItem =(項目内のIndvから) Indv.Item_id == j 選択Indv).ToList(); foreach(IndvItemのvar val) { dt.Rows [j] [val.title] = val.value; } IndvItem = null; }(int型のk = 0 kは++; < dt.Rows.Countをk)に対する(dt.Rows [K] [0] .ToString()== String.Emptyを) {dt.Rows場合 { [k]。Delete(); } } } Column = null; Items = null; return dt; }

      プライベート静的リストGet_Column(int型LIST_ID、文字列web_app、ストリングhost_auth) {リストcontent_db =新しいリスト(); リストcolumnname =新しいリスト(); Config_DB_Context configdb =新しいConfig_DB_Context( "dms_config"); .ToList()(== web_app 選択c.content_db c.host_auth == host_auth & & c.web_appをconfigdb.site_mappingにおけるCから) content_db =。 for(int i = 0; i < content_db.Count(); i ++) { Content_DB_Context contentdb = new Content_DB_Context(content_db [i]); ColumnNameの= .ToList(c.content_type == "列" & & c.list_id ==が 選択c.titleをLIST_ID contentdb.content におけるCから)(); } content_db = null; return columnname; }

      プライベート静的リストGet_Item(int型LIST_ID、文字列web_app、ストリングhost_auth) {リストcontent_db =新しいリスト(); リストItm =新しいリスト(); Config_DB_Context configdb =新しいConfig_DB_Context( "dms_config"); .ToList()(== web_app 選択c.content_db c.host_auth == host_auth & & c.web_appをconfigdb.site_mappingにおけるCから) content_db =。 for(int i = 0; i < content_db.Count(); i ++) { Content_DB_Context contentdb = new Content_DB_Context(content_db [i]); c.content_type == "アイテム" & & c.list_id ==新しいMYITEMを選択 {col_id =(INT)c.column_id、 LIST_ID =(INT をLIST_ID contentdb.content におけるCから ITM =( )c.list_id、 title = c.title、 値= c.value、 Item_id =(int)c.item_id、 hidden = c.hidden })ToList(); } content_db = null; return Itm; }

  • 関連する問題