2012-04-16 67 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 2012-04-16 18:48:47

回答

2

你可以建立一個模型來表示你的數據:

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

    ... and so on 
} 

那麼你可以創建一個將使用ADO.NET查詢數據庫,並填補這一模式的集合的方法:

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並建立從模型中喜歡的任何標記。

+0

沒有網格視圖,因爲我將顯示WML卡中的數據 – arin 2012-04-16 18:53:00

+0

然後,您可以使用您喜歡的任何格式手動構建標記。 – 2012-04-16 18:53:32

0

您可以使用Gridview和Itemtemplate來做這件事...... 您所需要做的就是根據您的要求將您的sql查詢與gridview綁定並在itemtemplate中創建表。

+0

我不能使用網格視圖我知道我說打印他們在ASP頁面,但我會在頁面內創建一個WML卡,並顯示結果。 – arin 2012-04-16 18:50:19