C# ASP.NET WebMatrix SQL数据库每次单击按钮是否提取下一行?
我是一个初学者,这是我第一次使用数据库。我试图在每次单击按钮时从SQL数据库表中获取下一行。我创建了一个按钮来发布,并试图每次增加3行,但它不起作用 如您所见,偏移值始终为0,默认行数为3,当有人单击按钮时,我希望每次增加3行。如果第一次有人单击按钮,那么我希望行数从3增加到6,第二次从6增加到9,依此类推 我正试图通过ASP.NET Razor循环或类似的方法来实现这一点,每次使用提交按钮更改和更新FETCH NEXT ROWS的值 任何帮助都将不胜感激。谢谢&这是我的代码: .cshtmlC# ASP.NET WebMatrix SQL数据库每次单击按钮是否提取下一行?,c#,sql,asp.net,razor,webmatrix,C#,Sql,Asp.net,Razor,Webmatrix,我是一个初学者,这是我第一次使用数据库。我试图在每次单击按钮时从SQL数据库表中获取下一行。我创建了一个按钮来发布,并试图每次增加3行,但它不起作用 如您所见,偏移值始终为0,默认行数为3,当有人单击按钮时,我希望每次增加3行。如果第一次有人单击按钮,那么我希望行数从3增加到6,第二次从6增加到9,依此类推 我正试图通过ASP.NET Razor循环或类似的方法来实现这一点,每次使用提交按钮更改和更新FETCH NEXT ROWS的值 任何帮助都将不胜感激。谢谢&这是我的代码: .cshtml
@{
var i += 3;
var value = i + Request["submit"];
var db = Database.Open("WebSite");
var selectQueryString = "SELECT * FROM WebSite ORDER BY NAME OFFSET 0 ROWS FETCH NEXT ('3 + value.AsInt()') ROWS ONLY";
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
@foreach(var row in db.Query(selectQueryString))
{
<tr>
<td>@row.NAME</td>
<td><img alt="#" src="@row.URL"></td>
</tr>
}
</table>
<form action="" method="post">
<button type="submit" name="submit">Load More</button>
</form>
</body>
</html>
@{
var i+=3;
var值=i+请求[“提交”];
var db=数据库。打开(“网站”);
var selectQueryString=“选择*从网站按名称排序偏移量0行获取下一步('3+value.AsInt()')行”;
}
@foreach(db.Query中的变量行(selectQueryString))
{
@row.NAME
}
加载更多
您的代码中有一些错误
我已将您的请求应用于以下Northwind示例数据库
@{
var rowsNumb = 3;
var db = Database.Open("Northwind");
if (IsPost){
rowsNumb = Request["lastRec"].AsInt() + 3;
}
var maxRecs = db.QueryValue("SELECT COUNT([Product Id]) FROM Products");
var sql = @"SELECT * FROM Products ORDER BY [Product Id]
OFFSET 0 ROWS FETCH NEXT @0 ROWS ONLY";
rowsNumb = (rowsNumb > maxRecs ? maxRecs : rowsNumb);
var result = db.Query(sql, rowsNumb);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table>
@foreach(var row in result){
<tr>
<td>@row["Product Name"]</td>
<td>@row["English Name"]</td>
<td>@row["Unit Price"]</td>
</tr>
}
</table>
<form action="" method="post">
<input type="hidden" name="lastRec" value="@rowsNumb" />
<button type="submit">Load More</button>
</form>
</body>
</html>
@{
var-rowsumb=3;
var db=数据库.Open(“北风”);
如果(IsPost){
rowsNumb=Request[“lastRec”].AsInt()+3;
}
var maxRecs=db.QueryValue(“从产品中选择计数([Product Id]));
var sql=@“按[产品Id]从产品订单中选择*
偏移量0行仅取下@0行”;
rowsumb=(rowsumb>maxRecs?maxRecs:rowsumb);
var result=db.Query(sql,rowsumb);
}
@foreach(结果中的var行){
@行[“产品名称”]
@行[“英文名称”]
@行[“单价”]
}
加载更多
我使用了一个隐藏字段来存储上次和每次显示的行数,并测试要显示的行数是否大于总行数。我知道您是一名初学者,但您能否为我们提供更多关于您尝试创建何种web应用程序的信息。Razor是一个视图引擎。视图中的唯一代码应该是显示逻辑。您应该在控制器中执行数据库访问代码。然后,您可以使用类似Html.BeginForm的东西来呈现表单,并使其在控制器上调用操作。@BenRobinson我正在尝试从数据库加载更多项,但我不能使用分页,因为分页会跳转到下一组结果。