c# - 如何通过 DataReader/DataTable 来查看?

标签 c# asp.net asp.net-mvc asp.net-mvc-3

我是 MVC 的新手,正在尝试编写一个简单的 MVC 3 应用程序,该应用程序读取模型类中的客户数据并使用 Controller 将其返回给 View 。阅读器显示它有行但是当加载到表并作为模型传递给 View 时,它为空。我需要一个简单的解决方案来传递 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);
        }
    }
}

最佳答案

对于 Controller :

 public ActionResult Index()
        {
            DataTable dt = GetData();

            return View(dt);
        }

然后在 View 中:

@model System.Data.DataTable
@using System.Data;

...................... ..................... …………

 <table class="table table-hover">
                        <thead>
                            <tr>
                                @foreach (DataColumn col in Model.Columns)
                                {
                                    <th>@col.ColumnName</th>
                                }
                            </tr>
                        </thead>
                        <tbody>
                            @foreach (DataRow row in Model.Rows)
                            {
                                <tr>
                                    @foreach (DataColumn col in Model.Columns)
                                    {
                                        <td>@row[col.ColumnName]</td>
                                    }
                                </tr>
                            }
                        </tbody>
                    </table>

关于c# - 如何通过 DataReader/DataTable 来查看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17869366/

相关文章:

asp.net - ASP.NET MVC中RedirectToAction的用法

javascript - @Html.Raw 生成的 javascript 无法正常工作

c# - 修饰符 'XXXX' 对此项目无效

c# - 数据库图像字段传递空值

c# - 如何用一个入口点对一个类进行单元测试?

c# - 订阅其他项目中的 Controller 引发的事件

c# - LINQ 可枚举线程

c# - 在同类之外不被认可的公共(public)结构

asp.net-mvc - 添加 View 对话框 MVC3

c# - asp.net mvc 可以自动生成时间戳到 js 代码吗?