2013-08-17 41 views
0

我对C#和Web表单非常陌生。我正在构建一个从SQL数据库中提取数据以呈现给查看者的网站。你有什么建议用于构建HTML,使用C#从SQL数据库中提取和展示数据?什么是更好的方式来建立我的HTML与C#?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.Sql; 
using System.Data.SqlClient; 

public partial class csusaCentralCallFlows : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     GetCallFlowData(); 
    } 
    else if (!IsPostBack) 
    { 
     GenerateCallFlowDropDown(); 
    } 
} 
private void GenerateCallFlowDropDown() 
{ 

    SqlConnection CFPull = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["csusaCDB"].ConnectionString); 
    string sql = @" 
       SELECT DISTINCT 
        CustomerName 
       FROM 
        CustomerData 
       "; 
    SqlCommand cmd = new SqlCommand(sql, CFPull); 
    DataTable dt = new DataTable(); 
    CFPull.Open(); 
    dt.Load(cmd.ExecuteReader()); 
    CFPull.Close(); 
    string html = ""; 
    html = "<select name=\"CustomerNameDD\" onChange=\"SubmitForm()\">"; 
    html += "<option>Select a Call Flow</option>"; 
    int rowCount = dt.Rows.Count; 

    for (int i = 0; i < rowCount; i++) 
    { 
     html += "<option>"; 
     html += dt.Rows[i].ItemArray.GetValue(0); 
     html += "</option>"; 
    } 

    html += "</select>"; 
    DropDownDiv.InnerHtml += html; 
} 
private void GetCallFlowData() 
{ 

    ResultsDiv.InnerHtml = ""; 
    string coName = Request.Form["CustomerNameDD"]; 
    SqlConnection PullDataConn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["csusaCDB"].ConnectionString); 
    string sql = @" 
       SELECT CustomerData.CustomerName, CallFlowData.contactPhone, CallFlowData.contactEmail, CallFlowData.contactOther 
       FROM CallFlowData 
       INNER JOIN CustomerData ON CustomerData.CustomerID = CallFlowData.CallFlowID 
       WHERE CustomerData.CustomerName LIKE @CustomerName 
     "; 

    SqlCommand cmd = new SqlCommand(sql, PullDataConn); 
    cmd.Parameters.AddWithValue("CustomerName", coName); 
    DataTable dt = new DataTable(); 
    PullDataConn.Open(); 
    dt.Load(cmd.ExecuteReader()); 
    PullDataConn.Close(); 

    int rowCount = dt.Rows.Count; 

    string html = ""; 

    for (int i = 0; i < rowCount; i++) 
    { 
     html += "<div class='divContainer'>" + 
        "<table class='resultsTable1'>" + 
        "<tr><td colspan='2' class='tdCoName'>"; 
     html += dt.Rows[i].ItemArray.GetValue(0); 
     html += "</td></tr>" + 
        "<tr><td class='contactCat'>HotLine</td>" + 
        "<td class='tdHeadingPadding'>"; 
     html += dt.Rows[i].ItemArray.GetValue(1); 
     html += "</td></tr>" + 
        "<tr><td class='contactCat'>e-Mail</td>" + 
        "<td class='tdHeadingPadding'>"; 
     html += dt.Rows[i].ItemArray.GetValue(2); 
     html += "</td></tr>"; 

     if (string.IsNullOrEmpty(dt.Rows[i].ItemArray.GetValue(3).ToString())) 
     { 
      html += "<tr><td colspan='2' style='height:10px;'></td></tr></table></div>"; 
     } 
     else 
     { 
      html += "<tr><td class='contactCat'>Other</td><td class='tdHeadingPadding'>"; 
      html += dt.Rows[i].ItemArray.GetValue(3); 
      html += "</td></tr><tr><td colspan='2' style='height:10px;'></td></tr></table></div>"; 
     } 

    } 

    ResultsDiv.InnerHtml += html; 

} 
} 
+1

如果你只是用ASP.NET开始,我建议你看看ASP.NET MVC 4在http://www.asp.net/mvc。在那里你可以找到极好的Pluralsight视频课程,我强烈建议你观看。 – neeKo

+0

与MVC同意,但如果您想使用Web Form,则可以很好地控制当前的数据,即ASP.NET Repeater。 Check This http://www.c-sharpcorner.com/uploadfile/puranindia/repeater-controls-in-Asp-Net/ – Max

+0

这个问题可能更适合CodeReview SE。 –

回答

1

您可以使用ASP.Net Web应用程序或ASP.Net Web窗体应用程序来执行此操作。如果它应该处理非常复杂的逻辑,并且需要长时间运行,那么.Net MVC应用程序将是一个不错的选择(它开始时非常灵活,但却非常灵活)。 这里是一个很好的教程链接..

http://www.youtube.com/playlist?list=PL6n9fhu94yhXQS_p1i-HLIftB9Y7Vnxlo

相关问题