我对 MVC 和一般编程非常陌生,并且在将数据从 SQL Server 数据库加载到我的 MVC3 应用程序中时遇到了麻烦。我无法让它与模型一起使用,所以我只有一个控制器和一个视图。代码如下所示:
控制器:
public ActionResult Datatable()
{
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["SampleDBConn"].ToString();
SqlConnection connect = new SqlConnection(conn);
connect.Open();
SqlCommand RID = new SqlCommand("SELECT Request_ID FROM SampleDB.dbo.Transactions", connect);
SqlCommand Tdate = new SqlCommand("SELECT Trans_Date FROM SampleDB.dbo.Transactions", connect);
SqlCommand MID = new SqlCommand("SELECT Merchant_ID FROM SampleDB.dbo.Transactions", connect);
SqlCommand Ttype = new SqlCommand("SELECT Trans_Type FROM SampleDB.dbo.Transactions", connect);
SqlCommand Tamt = new SqlCommand("SELECT Total_Amt FROM SampleDB.dbo.Transactions", connect);
DataTable dt = new DataTable("MyTable");
dt.Columns.Add(new DataColumn("Request_ID", typeof(SqlCommand)));
dt.Columns.Add(new DataColumn("Trans_Date", typeof(SqlCommand)));
dt.Columns.Add(new DataColumn("Merchant_ID", typeof(SqlCommand)));
dt.Columns.Add(new DataColumn("Trans_Type", typeof(SqlCommand)));
dt.Columns.Add(new DataColumn("Total_Amt", typeof(SqlCommand)));
DataRow row = dt.NewRow();
row["Request_ID"] = RID;
row["Trans_Date"] = Tdate;
row["Merchant_ID"] = MID;
row["Trans_Type"] = Ttype;
row["Total_Amt"] = Tamt;
dt.Rows.Add(row);
connect.Close();
return View(dt);
}
看法:
@model System.Data.DataTable
@{
ViewBag.Title = "Datatable";
Layout = "~/Views/Shared/_Layout.cshtml";
}
< h2 > Datatable < /h2 >
< div id="header" >< /div >
< br / >
< style type"text/css" >
#DT1{display:inline}
< /style >
< table border="1" id="DT1" style="background-color: Lime" >
< thead style="background-color:Olive" >
< tr >
@foreach (System.Data.DataColumn col in Model.Columns)
{
< th >@col.Caption< /th >
}
</tr>
< /thead >
< tbody >
@foreach (System.Data.DataRow row in Model.Rows)
{
<tr>
@foreach (var cell in row.ItemArray)
{
<td>@cell.ToString()</td>
}
</tr>
}
</tbody>
</table>
结果表显示每一列,如下所示:
Request_Id
System.Data.SqlClient.SqlCommand
其中“Request_Id”是列标题,“System.Data.SqlClient.SqlCommand”是数据应该存放的位置
我从另一个 stackoverflow 解决方案中使用了这种方法: Displaying standard DataTables in MVC
我的应用程序的最终目标是通过复选框或下拉列表动态查询我的数据库以显示图表,并且我还需要能够将数据导出到 Excel 文件。如果有人对我应该如何处理这个问题有任何想法或建议,将不胜感激。
我已经能够使用存储过程通过此方法静态创建图表:
@{
ViewBag.Title = "Chart1";
}
< h2 >Chart1< /h2 >
@{
var db = Database.Open("SampleDBConn");
var dbdata = db.Query("August2012byMerch");
var myChart = new Chart(width: 1100, height: 600, theme: ChartTheme.Green)
.AddTitle("Merchant Totals by Transaction Type: August 2012")
.AddSeries("Default",
xValue: dbdata, xField: "Transaction Type",
yValues: dbdata, yFields: "Total")
.Write();
db.Close();
}
谢谢!