我是MVC的新手,嘗試編寫一個簡單的MVC 3應用程序,它讀取模型中的類中的客戶數據,並將其返回到使用控制器查看。 Reader顯示它有行,但是當加載到表並傳遞給模型時,它是空的。我需要一個簡單的解決方案來通過DataTable
查看或DataReader
查看我可以轉換爲DataTable
的位置。如何傳遞DataReader/DataTable來查看?
下面是代碼:
namespace MvcApplication3.Models
{
public class Customer
{
public DataTable GetCustomers(OdbcDataReader rds)
{
String ConString = "DSN=Northwind;Uid=;Pwd=;";
String SQL = "SELECT * FROM CUSTOMERS";
DataTable tbl = new DataTable();
using (OdbcConnection con = new OdbcConnection(ConString))
{
con.Open();
OdbcCommand cmd = new OdbcCommand(SQL, con);
rds = cmd.ExecuteReader();
}
}
}
}
namespace MvcApplication3.Controllers
{
public class DefaultController : Controller
{
//
// GET: /Default1/
public ActionResult Index()
{
Customer cs = new Customer();
OdbcDataReader rd = new OdbcDataReader();
cs.GetCustomers(rd);
DataTable tb = new DataTable();
tb.Load(rd);
return View(tb);
}
}
}
不要將'DataReader'或'DataTable'傳遞給視圖。不要將'DataReader'或'DataTable'傳遞給ViewModel。創建一個代表需要使用的數據的POCO - 這稱爲模型,將它傳遞給知道如何將該數據按摩爲可呈現的類的類 - 這稱爲ViewModel,然後將其傳遞到View中。爲了讓您的生活更輕鬆地嘗試[實體框架](http://msdn.microsoft.com/zh-cn/data/ef.aspx)。 – Jay
我真的試圖避免EF和使用我自己的DAL類型的類。我正在傳遞一個數據表和它的視圖。但我會修改你的建議給班級,然後看看是否需要更少的代碼。感謝提示 – Ammad