Sql 将参数发送到windows 8应用商店应用程序的c#中的windows azure移动服务器脚本
我在我的Windows Azure移动服务预览表(名为“项”)上修改了“读取”操作,如下所示: Javascript:Sql 将参数发送到windows 8应用商店应用程序的c#中的windows azure移动服务器脚本,sql,windows-8,windows-store-apps,azure-mobile-services,Sql,Windows 8,Windows Store Apps,Azure Mobile Services,我在我的Windows Azure移动服务预览表(名为“项”)上修改了“读取”操作,如下所示: Javascript: function read(query, user, request) { var howRead; if(howRead == "unique") { var sqlUnique = "SELECT DISTINCT ? FROM Item WHERE qProjectCode = ?"; mssql.query(sqlUnique) reque
function read(query, user, request)
{
var howRead;
if(howRead == "unique")
{
var sqlUnique = "SELECT DISTINCT ? FROM Item WHERE qProjectCode = ?";
mssql.query(sqlUnique)
request.execute();
}
else if (howRead == "column")
{
var sqlColumn = "SELECT ? FROM Item WHERE qProjectCode = ?";
mssql.query(sqlColumn)
request.execute();
}
else if (howRead == "all")
{
var sqlAll = "SELECT * FROM Item WHERE qProjectCode = ?";
mssql.query(sqlAll)
request.execute();
}
}
当我希望返回一列值、一列中的所有项或所有列的唯一列表时,这仅仅是一种选择,同时将读取限制为具有给定项目代码的记录
现在,它在C#中工作,但扫描整个表(使用其他项目代码),并始终返回所有列。这本身就是低效的
c#
var-client=new-MobileServiceClient(“[https-path]”,“[key]”);
var table=client.GetTable();
var query1=表。其中(w=>w.QProjectCode==qgv.projCode&&w.QRecord==(int)lbRecord.Items[uStartRecordIndex]);
var query1Enum=wait query1.ToEnumerableAsync();
foreach(query1Enum中的变量i)
{
//过程数据
}
我如何修改c#代码来处理Javascript代码?请随意评论一下整体方法,因为我不是一个优秀的程序员,而且总是可以使用建议
谢谢几件事:
- 在您的服务器代码中,
调用没有做任何事情(有用)。如果您想得到它们的结果,需要向其传递回调(调用是异步的)mssql
- 大多数场景都可以在客户端完成。唯一需要服务器代码的场景是带有
修饰符的场景DISTINCT
- 对于这种情况,您需要将自定义参数传递给服务器脚本。您可以使用
对象中的MobileServiceTableQuery
方法来定义要传递给服务的参数WithParameters
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Other { get; set; }
public string ProjectCode { get; set; }
}
下面的代码只能用于在客户端完成场景2和场景3(服务器端不需要脚本)
Task<IEnumerable<string>> ReadingByColumn(IMobileServiceTable<Item> table, string projectCode)
{
return table
.Where(i => i.ProjectCode == projectCode)
.Select(i => i.Name)
.ToEnumerableAsync();
}
Task<IEnumerable<Item>> ReadingAll(IMobileServiceTable<Item> table, string projectCode)
{
return table.Where(i => i.ProjectCode == projectCode).ToEnumerableAsync();
}
Task<IEnumerable<string>> ReadingByColumnUnique(IMobileServiceTable<Item> table, string projectCode)
{
var dict = new Dictionary<string, string>
{
{ "howRead", "unique" },
{ "projectCode", projectCode },
{ "column", "Name" },
};
return table
.Select(i => i.Name)
.WithParameters(dict)
.ToEnumerableAsync();
}
有几件事:
- 在您的服务器代码中,
调用没有做任何事情(有用)。如果您想得到它们的结果,需要向其传递回调(调用是异步的)mssql
- 大多数场景都可以在客户端完成。唯一需要服务器代码的场景是带有
修饰符的场景DISTINCT
- 对于这种情况,您需要将自定义参数传递给服务器脚本。您可以使用
对象中的MobileServiceTableQuery
方法来定义要传递给服务的参数WithParameters
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Other { get; set; }
public string ProjectCode { get; set; }
}
下面的代码只能用于在客户端完成场景2和场景3(服务器端不需要脚本)
Task<IEnumerable<string>> ReadingByColumn(IMobileServiceTable<Item> table, string projectCode)
{
return table
.Where(i => i.ProjectCode == projectCode)
.Select(i => i.Name)
.ToEnumerableAsync();
}
Task<IEnumerable<Item>> ReadingAll(IMobileServiceTable<Item> table, string projectCode)
{
return table.Where(i => i.ProjectCode == projectCode).ToEnumerableAsync();
}
Task<IEnumerable<string>> ReadingByColumnUnique(IMobileServiceTable<Item> table, string projectCode)
{
var dict = new Dictionary<string, string>
{
{ "howRead", "unique" },
{ "projectCode", projectCode },
{ "column", "Name" },
};
return table
.Select(i => i.Name)
.WithParameters(dict)
.ToEnumerableAsync();
}
哇…太棒了。我按照你的指示做了,ReadingAll和ReadingColumn例程非常有效。!比我最初的方法节省了大量时间。非常感谢。我无法让ReadingByColumn唯一例程工作,它破坏了其他两个例程(如果我将服务器脚本更改为您的代码,那么这三个例程每次都会出现内部服务器错误)。我经常使用它,并且我的猜测是最好的(请记住,我知道的很少)变量切换和/或逻辑是不正确的。可能是完全不同的。有什么后续想法吗?在这一点上调试服务器脚本不是一件很容易的事情。我通常会在脚本中编写一堆
控制台.log
语句来确定错误在哪里。哇……太棒了东西。我按照你的指示,ReadingAll和ReadingColumn例程工作得很好。!比我最初的方法节省了大量时间。所以非常感谢。我无法让ReadingByColumn唯一例程工作,它破坏了其他两个例程(如果我将服务器脚本更改为您的代码,那么这三个例程每次都会出现内部服务器错误)。我经常使用它,并且我的猜测是最好的(请记住,我知道的很少)是因为变量切换和/或逻辑不正确。可能是完全不同的。有什么后续想法吗?在这一点上调试服务器脚本不是一件很容易的事情。我通常会在整个脚本中编写一组控制台.log
语句,以确定错误所在。