我正在创建一个将根据linq语句填充的gridview,sql如下:
SELECT TOP 10 IDDesc, UnitUserfield1, UnitUserfield2, ProductPercentage
FROM tblOnlineReportingCOMPLETEWeights
WHERE (MaterialLevel = 'Primary') AND (MaterialText = 'Paper')
ORDER BY ProductPercentage DESC
现在,我想要做的是让用户指定前十名,所以基本上它是一个“Top x”,它在文本框中定义,即他们在文本框中键入50,执行linq查询, gridview显示前50名。
据我所知,使用Take是我想看的区域,这是正确的吗?这甚至可能吗?!
任何想法,非常感谢。
PS:对于提问问题很抱歉,我对这一切都很陌生!答案 0 :(得分:0)
你是对的。获取用户输入并将其提供给Take。那就行了。
int howMany = Convert.ToInt32 (HowManyTextBox.Value);
var queryResult = /*.....*/.Take (howMany);
答案 1 :(得分:0)
int max = 0;
if (Int.TryParse(TextBox1.Text, out max)
{
var q = (from tbl where ... orderby ... desc).Take(max);
}
沿着这些方向
答案 2 :(得分:0)
非常感谢你,我选择了以下内容:
{
ORWeightsDataClassesDataContext db = new ORWeightsDataClassesDataContext();
int max = 0;
if (int.TryParse(txtbxHowMany.Text, out max))
{
var queryV = db.tblOnlineReportingCOMPLETEWeights
.Where(x => x.MaterialLevel == "Primary" && x.MaterialText == "Paper")
.OrderByDescending(x => x.ProductPercentage).Take(max);
GridView1.DataSource = queryV;
GridView1.DataBind();
}
}
这是一种享受。
非常感谢,非常感激,现在我的网站终于走到了一起......我觉得谎言在庆祝...酒吧有人吗?!