私は 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();
}
ありがとうございました!