2017-05-22 6 views
0

私はリピーターがソースからのレコードで囲まれています。リピーターの内容は、一日の終わりに、このリピーター行と列の項目をasp.netの配列またはリストに入れる方法

Science  5    67 

    Art   3    57 

のように見える、私はので、私は、データベースに保存することができます。このような{Science, Art}{5,3}{67,57}このリピータの結果を取得したいです。あなたが特定の生徒のデータベースにそのテーブルを保存することができる他の方法があれば、助かります。

<asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound"> 
    <HeaderTemplate></HeaderTemplate> 
    <ItemTemplate> 
    <tr> 
     <td class="ctg-type"> 
     <strong> <%#Eval("SubjectName") %> </strong> <span><strong> <%#Eval("Unit") %></strong></span> 
     </td> 
     <td class="cgt-des"> 
     <%# Eval("Score") %> 
     </td> 
    </tr> 
    </ItemTemplate> 
</asp:Repeater> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    repeater.DataSource = getSudentRecord(); 
    repeater.DataBind(); 
} 

public DataTable getStudentRecord() 
{ 
    using (SqlCommand command = new SqlCommand("StudentRecord", con)) 
    { 
    command.CommandType = CommandType.StoredProcedure; 
    con.Open(); 
    command.ExecuteNonQuery(); 
    var data = new SqlDataAdapter(command); 
    var Table = new DataTable(); 
    data.Fill(Table); 
    con.Close(); 
    return Table; 
    } 
} 
+0

を明確にしてください:あなたは、DB **から** **リピーターのための**データを取得し、その後、データを保存したいです** **リピーター**から** dbまで。私は何を誤解していますか? –

+0

"この中継器の結果"。これは何を意味するのでしょうか?ユーザーはリピータ内のフィールドで何かを更新しますか?あなたが何を意味するかはまったく明確ではありません。あなたは私が思ういくつかの実際のコードを表示する必要があります – ADyson

+0

明確にする。上記の表は、リピーターを使用して表示されます。行と列が変わる可能性があります。私がやってみたいことは、上記のリピーターのコンテンツを{Science、Art} {5,3} {67,57}にしてデータベースに保存することです。私がしたいのは、上記のテーブル(リピータ)の内容を保存してデータベースに保存することです。 – Mcbaloo

答えて

1

このアプローチでは、二回のDataTableを解析します:

 DataTable foo = getSudentRecord(); 

     string serializedFormat = "{{{0}}},{{{1}}},{{{2}}}"; 
     List<string> subjectnames = new List<string>(); 
     List<string> units = new List<string>(); 
     List<string> scores = new List<string>(); 
     foreach (DataRow row in foo.Rows) 
     { 
      subjectnames.Add(row["SubjectName"].ToString()); 
      units.Add(row["Unit"].ToString()); 
      scores.Add(row["Score"].ToString()); 
     } 

     string serialized = String.Format(serializedFormat, 
      String.Join(",",subjectnames.ToArray()), 
      String.Join(",", units.ToArray()), 
      String.Join(",", scores.ToArray()) 
      ); 


     //finally fill the repeater 
     repeater.DataSource = foo; 
     repeater.DataBind(); 
関連する問題