通过Javascript检索数据库记录

时间:2016-07-20 19:09:25

标签: javascript asp.net-mvc

我要做的是检索数据库中与用户输入的记录相关的最新记录(对象)。并获取该对象的特定属性并在简单的减法条件语句中使用它。

JavaScript的:

<script type="text/javascript">
$('#DialogTime').dialog({
        autoOpen: false,
        width: 600,
        modal: true,
        buttons: {
            "Confirm": function () {
                $("#DSCreateForm").submit();
            },
            "Cancel": function () { $(this).dialog("close"); }
        }
    });


    $('.btnSubmitDS').on("click", function (e) {
        // this is where the conditional statement needs to be.
        {
            e.preventDefault();
            $(function () {
                $('#DialogHighFlightTime').dialog('open')
            });
        }
    });
</script>

现在,包含此脚本的视图是一个表单...一旦用户点击提交,他们刚刚提交的记录将成为表中的最后一行..所以我需要获取属性值从用户刚刚输入的那一行开始。

我知道如何编写条件语句..我只需要知道如何检索正确的记录。

我可能会说这一切都错了,但我不知道如何检索最接近用户刚进入的记录的记录。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您有与记录关联的插入时间戳,您可以考虑按降序对结果进行排序,跳过第一个(刚刚插入的那个)并获取第一个项目。

LINQ可能很方便。

这样的东西
var secondLastRecord = db.Issues.OrderByDescending(s=>s.CreatedTime).Skip(1).Take(1);

如果要将此限制为特定用户,可以考虑使用where子句添加其他条件。

var userIdToCheck=324;
var secondLastRecord = db.Issues.
                         .Where(c=>c.CreatedById==userIdToCheck)
                         .OrderByDescending(s=>s.CreatedTime).Skip(1).Take(1);

假设db是您的DbContext对象。如果您使用的是非EF数据访问层,则仍可以使用LINQ OrderByDescending-Skip-Take方法。将db.Issue替换为代表您的表格数据的任何IEnumerable<T>

另外,要在javascript中获取此内容,您需要对服务器操作方法进行ajax调用,您将执行此代码并将其返回。