2012-04-16 19 views
-3

私はこのクエリを持っており、生成された情報を抽出して、WMLカードを含むASP.netページに出力したいと考えています。SQL文字列から値を抽出して出力する

string queryString = "select st.firstname + ' ' + st.lastname,se.year, c.coursename,c.NumberOfCredits,ri.mark from Students st inner join RegisteredIn ri on ri.StudentId=st.id inner join Semester se on se.id=ri.SemesterId inner join Courses c on c.id=se.id "; 

注:

First Semester 2010 
Student : Arin Rizk 
Course Name  No. of Credit  Mark 
AAA    3   65  
BBB    3   23  
CCC    3   65  
DDD    3   58  
EEE    3   70 

がどのように私はそれを行うことができますように結果が気にいらないでしょうか?見せてください。

+0

はい、私はしばらく使用しました(reader.Read())// string _firstname = reader [0] .ToString(); //、しかしそれらを印刷できませんでした。 – arin

答えて

2

public static IEnumerable<StudentCourse> GetCourses() 
{ 
    using (var conn = new SqlConnection(SomeConnectionString)) 
    using (var cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = "select st.firstname + ' ' + st.lastname, se.year, c.coursename, c.NumberOfCredits, ri.mark from Students st inner join RegisteredIn ri on ri.StudentId=st.id inner join Semester se on se.id=ri.SemesterId inner join Courses c on c.id=se.id"; 
     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       yield return new StudentCourse 
       { 
        Name = reader.GetString(0), 
        Year = reader.GetInt32(1), 
        ... and so on 
       }; 
      } 
     } 
    } 
} 

最後に、これをページのGridViewにバインドすることができます。

public void Page_Load(object sender, EventArgs e) 
{ 
    courses.DataSource = GetCourses(); 
    courses.DataBind(); 
} 

<asp:GridView ID="courses" runat="server" AutoGenerateColumns="true" /> 

をしたり、グリッドビューを使用したくない場合は、単にRepeaterを使用して、モデルから好きなマークアップの構築:あなたの後ろにeは、グリッドを持つことになります。

+0

私はWMLカードのデータを表示するので、グリッドビューを持っていません – arin

+0

あなたは、コレクションから好きなフォーマットでマークアップを手動で構築できます。 –

0

GridviewとItemtemplateを使用することができます... 必要な作業は、SQLクエリをgridviewにバインドし、必要に応じてitemtemplateでテーブルを作成することだけです。あなたはADO.NETを使用してデータベースを照会し、このモデルのコレクションを記入するメソッドを作成することができ

public class StudentCourse 
{ 
    public string Name { get; set; } 
    public int Year { get; set; } 

    ... and so on 
} 

:あなたはあなたのデータを表現するモデルを構築することができ

+0

私はグリッドビューを使用できません私はASPページでそれらを印刷すると言いましたが、私はページ内にWMLカードを作成し、結果を表示します。 – arin

関連する問題