I've been trying to use a preexisting database in my ASP.NET MVC project. I create a "Data Connection" to my (Microsoft SQL)Database (".\SQLEXPRESS.Databases"), which has the table "Test". This table has two columns, "ID (int)" and "name (nvarchar(MAX))".
In the "Models" folder I put this new class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Test
{
public int ID { get; set; }
public string name { get; set; }
}
}
Then (in "Controllers") I have a new Controller, "HelloWorldController". In this I have this function:
public ActionResult Index()
{
DataSet data;
DataTable table;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand select = new SqlCommand("SELECT * FROM Test", connection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = select;
data = new DataSet();
adapter.Fill(data, "Test");
table = data.Tables[0]; //is the [0] really correct?
}
return View(/* HOW DO I GET THE TABLE TO THE VIEW? */);
}
Now I would like to display the rows of the table in my "Index.cshtml" file (in "Views"). How do I get the table from the Controller to the view? What I found was with "@model" and "IEnumerable", but that does not work, since I cannot convert my table.
@model IEnumerable<MyProject.Models.Test>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@foreach (var item in Model) {
<p>blaaaah</p>
}
Now there are three questions:
1. Am I doing something completely wrong? (Method of DB-Access,..)
2. Is there an easier way to do this? (Without all adapter,.. stuff)
3. If !1&&!2, How do I get it to work? (Get the view file to "know" my table)
Thanks for help,
Regards,
Caba