2013-11-05 57 views
0

我是C#的新手。我如何在Razor視圖中顯示SQL?如何將結果導入視圖

// GET: /ReportData 
public ActionResult Index() 
{ 
    using (SqlConnection connection = new SqlConnection(@"Data Source=xxx.xxx.xxx.xxx;Initial Catalog=xxxxxx;Persist Security Info=True;User ID=xxxxx;Password=xxxxx")) 
    { 
     using (SqlCommand command = connection.CreateCommand()) 
     { 
      command.CommandText = @"select * from ProjectManagement as p 
      join Implementation as i on p.JobNumber = i.JobNumber 
      join Divisions as d on i.Division = d.Division 
      where p.ProjectStatus = 'Active'" 

      connection.Open(); 
      using (SqlDataReader reader = command.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        // process result 
        reader.GetValue(0); 
        reader.GetValue(1); 
        reader.GetValue(2); 
        reader.GetValue(3); 
        reader.GetValue(4); 
        reader.GetValue(5); 
       } 

      } 
     } 
    }   

    return View(); 
}  

我明白這取決於讀者對象,但在此之後,我不知道如何進行。只需要...

+0

首先使用僞數據。然後您將瞭解如何從sql中獲取結果並顯示這些結果 – Haritha

回答

0

你真的需要看看實體框架,並進入建模。這個問題需要很多回答。

微軟的EF(實體框架)http://msdn.microsoft.com/en-us/data/ef.aspx 或當然使用stackoverflow和用剃刀尋找實體框架和視圖模型。

上面的答案會假設你正在使用這種方法,並且不會像以前那樣在循環數據庫的舊方法中工作。這實際上並不是一個很好的答案,但是你需要對實體框架或其他ORM(對象關係映射器)進行一些研究,這應該可以幫助你。

// GET: /ReportData 
public ActionResult Index() 
{ 
    List<DataHolder> data = new List<DataHolder>(); 
    using (SqlConnection connection = new SqlConnection(@"Data Source=xxx.xxx.xxx.xxx;Initial Catalog=xxxxxx;Persist Security Info=True;User ID=xxxxx;Password=xxxxx")) 
    { 

     using (SqlCommand command = connection.CreateCommand()) 
     { 
      command.CommandText = @"select * from ProjectManagement as p 
      join Implementation as i on p.JobNumber = i.JobNumber 
      join Divisions as d on i.Division = d.Division 
      where p.ProjectStatus = 'Active'" 

      connection.Open(); 
      using (SqlDataReader reader = command.ExecuteReader()) 
      {     
       while (reader.Read()) 
       { 
        data.Add(new DataHolder { 
         Item1 = reader.GetValue(0), 
         Item2 = reader.GetValue(1) 
        }); 
        // process result 
        //reader.GetValue(0); 
        //reader.GetValue(1); 
        //reader.GetValue(2); 
        //reader.GetValue(3); 
        //reader.GetValue(4); 
        //reader.GetValue(5); 
       } 

      } 
     } 
    }   

    return View(data); 
} 


public class DataHolder { 
    public string Item1 { get; set; } 
    public string Item2 { get; set; } 
} 

然後在view.cshtml要被顯示在視圖

@model List<DataHolder> 

@foreach(var a in Model) { 
    <p>@a.Item1 @a.Item2</p> 
} 
+1

您不必在此處使用ORM。但是,這是明智的。 – ediblecode

+0

jumpingcode是正確的。我剛剛閱讀了我的回覆,看起來我聽起來像是必須使用ORM。我發佈的代碼大致顯示瞭如何在不使用ORM的情況下使用當前代碼連接數據。 –

相關問題