mysql - MVC5 MySQL 问题

标签 mysql entity-framework asp.net-mvc-5 mysql-workbench

从 Entity Framework 中的数据库更新模型后。 Json 数据未填充到文本框中。当我使用 DeveloperTool 时,我发现一个错误“已经有一个与此连接关联的打开的 DataReader,必须首先关闭它。”[错误 505] 帮助我解决此问题。在我的项目中使用 MySql 。当我在模型中仅使用一张表时,我没有收到任何错误,但是当我更新模型时,我的项目无法正常工作。如果我添加模型中的所有表,那么我将面临同样的问题。

这是我的代码

Controller :-

// GET: Chains
public ActionResult Index()
{
    ViewData["chain_name"] = new SelectList(db.chains, "code", "name");
    return View(db.chains.ToList());
}

//Action Function callby javascript
[HttpPost]
public ActionResult Action(string code)
{
    var query = from c in db.chains
                where c.code == code
                select c;

    return Json(query);//Return Json Result
}

查看:-

@using (@Html.BeginForm())
 {
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <hr />
        <div class="form-group">
            <label class="col-sm-2 control-label">
                Select Chain
            </label>
            <div class="col-md-3">
                @Html.DropDownList("ddlchainname", (SelectList)ViewData["chain_name"], new {         onchange = "Action(this.value);", @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
    <label class="col-sm-2 control-label">
        Chain Name
    </label>
    <div class="col-md-3">
        @Html.TextBox("ChainName", null, new { @class = "form-control" })
    </div>
    <label class="col-sm-2 control-label">
        Username
    </label>
    <div class="col-md-3">
        @Html.TextBox("username", null, new { @class = "form-control" })
            </div>
</div>
<div class="form-group">
    <label class="col-sm-2 control-label">
        Chain Code
   </label>
    <div class="col-md-3">
        @Html.TextBox("ChainCode", null, new { @class = "form-control" })
    </div>
</div>
    </div>
 }

<script type="text/javascript">
function Action(code) {
$.ajax({
    url: '@Url.Action("Action", "Chains")',
    type: "POST",
    data: { "code": code },
    "success": function (data) {
        if (data != null) {
            var vdata = data;
            $("#ChainName").val(vdata[0].name);
            $("#ChainCode").val(vdata[0].code);
            $("#username").val(vdata[0].username);
        }
    }
});

}

最佳答案

尝试这种方法:

using (var db = new ChainEntities())
{
    ViewData["chain_name"] = new SelectList(db.chains, "code", "name");

    return View(db.chains.ToList());
}

这样您只需打开连接一次,然后在完成后将其丢弃。

理智的行动:

[HttpPost]
public ActionResult Action(string code)
{

    using (var db = new ChainEntities())
    {
      var query = from c in db.chains
                  where c.code == code
                  select c;

      return Json(query);//Return Json Result
    }

}

关于mysql - MVC5 MySQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092390/

相关文章:

javascript - CSS 不在 MVC 5 View For image-gallery 中的事件缩略图下方绘制边框

mysql - 与 4 个表连接时字段列表不明确

mysql - 返回大量结果的组合 SQL 查询

visual-studio-2008 - "Visual studio 2008 SP1"找不到 ADO.NET 实体数据模型模板

c# - Entity Framework : Change connection string at runtime

c# - 确保至少一个地址添加到数据库 - Entity Framework Code First

c# - 发送邮件异步不起作用

c# - 在 Razor 和 MVC 中为表创建提交按钮

java - 缺少/不可用依赖项的服务

php - MySQL 将多行查询连接到一列中