无法执行具有多个参数的过程

Unable to Execute procedure with multiple parameters

我正在尝试使用 Azure 的 DocumentDb 来验证用于登录的用户凭据,但我无法获得正确的结果。

几点: 1. 这是一个分区集合,我正在传递分区键。 2. 我正在传递一个数组作为参数。

这是我调用程序的代码:

response = await client.ExecuteStoredProcedureAsync<string>(storedProcedurelink, new RequestOptions { PartitionKey = new PartitionKey(partitionKey) }, new dynamic[]{param});

这是我的程序代码:

function sample(param) {
var collection = getContext().getCollection();
var query = 'SELECT * FROM c where c.logindata.email="'+param[0]+'" and c.logindata.password="'+param[1]+'" and c.userid>0';
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
    collection.getSelfLink(),
    query,
    function (err, feed, options) {
if (err) throw err;
if (!feed || !feed.length) getContext().getResponse().setBody('no docs found');
else getContext().getResponse().setBody(JSON.stringify(feed));

});
if (!isAccepted) throw new Error('The query was not accepted by the server.');
}

我能够在查询资源管理器中执行查询并获得正确的结果,但是当我调用过程时它总是给出 no docs found。我不知道我做错了什么,有人能指出我正确的方向吗?

I don't know what i am doing wrong.

由于 param[0]param[1] 无法在商店中获得加速结果 procedure.We 可以从 Azure 门户进行测试。

can someone point me in right direction.

请尝试在您的案例中使用 2 个参数。

function sample(email,password) {
var collection = getContext().getCollection();
var query = 'SELECT * FROM c where c.logindata.email="'+email+'" and c.logindata.password="'+password+'" and c.userid>0';
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
    collection.getSelfLink(),
    query,
    function (err, feed, options) {
if (err) throw err;
if (!feed || !feed.length) getContext().getResponse().setBody('no docs found');
else getContext().getResponse().setBody(JSON.stringify(feed));

});
if (!isAccepted) throw new Error('The query was not accepted by the server.');
}

并确保我们可以从 Azure Portal 脚本探索器中获得预期的结果。

在 C# 代码中

      var user = "xxxxx";
      var password = "xxxx";
      var response = await client.ExecuteStoredProcedureAsync<string>(storedProcedurelink, new RequestOptions { PartitionKey = new PartitionKey(partitionKey) },user,password);