【问题标题】:Connect to Oracle with MVC 3 Query and Display Data使用 MVC 3 查询和显示数据连接到 Oracle
【发布时间】:2012-06-19 20:27:16
【问题描述】:

我应该创建一个 MVC 3 页面(使用 Telerik)。
我之前在 C# .aspx 4.0 中创建了应用程序并且工作得很好,但我的公司更愿意将它作为 MVC 页面。

我从未使用过 MVC,但我认为我掌握了它的一般窍门;但是,我似乎在最简单的步骤上失败了。

我想连接到 oracle 数据库,查询数据库并最终在网格中显示数据。我不明白如何连接到数据库。 (我阅读了大约 50 个教程,但在这里找不到任何帮助我的东西)

在网络表单中,我会在后面的代码中写下这样的内容:

OleDBConnection dbConnection = new OleDbConnection();
dbConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
dbConnection.Open();

OleDbCommand dbCommand = new OleDbCommand();
dbCommand.CommandText = "select * from table where id > 500";

等等。然后将数据写入数据表中。

所以我的问题是:我将如何在 MVC 中做到这一点?我知道我会将它放在模型中的某个位置,但这就是我目前得到的全部内容。


进一步讨论:

部分菜单:

...
.Items(item =>
{
item.Add().Text("Run Table Statistics").Action("Standard", "TableStatistics");
...

现在我将创建一个文件夹 DLA 并向其中添加一个新类:

public static IList<Tiles> GetTiles()
{
   //Write code to get data from your favorite db.(Oracle/SQLServer/..?) 
   //All you want to do is return a list of customer objects
}

现在我将创建一个名为“TableStatisticsController.cs”的空控制器 我把这个放在哪里:

public ViewResult Standard()
{
  Object Tiles=**YourDataAccessClass**.GetTiles().ToList();
  return View(Tiles);
}

YourDataAccessClass 是什么意思,那是我在 DLA 中创建的类吗?

你在我的强类型视图中说?我想使用 Telerik Grid View,可以吗?

【问题讨论】:

    标签: c# asp.net database asp.net-mvc-3 oracle


    【解决方案1】:

    您的数据访问方法不必与 MVC 架构 做任何事情。它(数据访问方法)可以是任何东西。 MVC 不关心您是否正在查询 SQLServer 数据库/Oracle 数据库。只需将您的数据访问方法包装到一个方法中,然后让您的代码(控制器中的操作方法)调用它。使用 viewModels/Models 左右将数据传回您的视图...

    假设你要包装你的数据访问代码,它会返回一个这样的客户对象列表

    public static IList<Customer> GetCustomers()
    {
       //Write code to get data from your favorite db.(Oracle/SQLServer/..?) 
       //All you want to do is return a list of customer objects
    }
    

    你可以像这样从你的 Action 方法中调用它

    public ActionResult GetCustomerList()
    {
      var customers=YourDataAccessClass.GetCustomers().ToList();
      return View(customers);
    }
    

    在绑定到客户列表的强类型视图中

    @model IList<Customer>    
    @foreach(var item in Model)
    {
        <p>@item.FirstName</p>
    }
    

    编辑:基于问题编辑

    你所说的对象是什么意思?我怎样才能检索对象?我正想 读取数据库并将其添加到 DataTable 或类似的。

    您的模型/实体类的对象,例如客户/订单等。我不会返回数据表,而是返回一个填充的客户/订单对象。

    YourDataAccessClass 是什么意思,那是 I 类 在 DLA 中创建?

    是的。没错。

    你在我的强类型视图中说?我想使用 Telerik Grid 看看,这可能吗?

    是的,这是可能的。但我从来没有用过。您需要查看他们的文档。

    我建议你下载一些sample MVC applications 并了解它是如何工作的。

    【讨论】:

    • Ty,我将你标记为答案。不过我想知道,我将第一个代码块放在哪里?进入模型文件夹中的类?
    • @PatrickUllrich:第一个代码块是什么意思?数据访问?您可以将其添加到同一项目中的类或添加到单独的类库等中。完全取决于您。我建议你参考一些互联网上的示例项目
    • 查看我的问题,我附加了更多详细信息
    • @PatrickUllrich:查看我的更新。在一个问题中问另一个问题不是一个好习惯。我鼓励您查看一些示例应用程序并了解 MVC 的工作原理。
    • 谢谢,我会牢记这一点。我如何正确地问另一个问题?
    猜你喜欢
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多